前端用 localstorage 保存部分数据用于数据回显,当用户切换账号时会出现数据串号的情况,如何解决?

2019 年 10 月 11 日
 cococoder

如题,当然出现这个问题是当初设计的问题,没有做唯一标识识别,解决串号简单,但是该如何兼容老数据是个问题,如何保证上线后,不影响之前用户已经缓存在本地的数据

6155 次点击
所在节点    程序员
29 条回复
fengxianqi
2019 年 10 月 11 日
让旧数据全部失效
murmur
2019 年 10 月 11 日
注销的时候不清除数据么?或者用 cookies,
ayase252
2019 年 10 月 11 日
注销清空所有保存的状态
lneoi
2019 年 10 月 11 日
退出时清空,或者登陆存数据时清空旧数据,也可以增加一个字段做用户识别,看你具体数据情况
lukunlin
2019 年 10 月 11 日
串号明显是你的业务代码有问题.
建议做给导图理清楚自己的登录系统的逻辑.
毕竟用 localStorage 存 token 也好还是其他,那么多人用都没什么问题
liuy1994g
2019 年 10 月 12 日
你们什么数据这么重要还存本地,直接作废不就行了
keelii
2019 年 10 月 12 日
用 ls 有个基本的逻辑,如果缓存的数据是没有个体差异的那就随便存,如果有那就要在缓存中添加必要的字段来区分数据。不过你得考虑到 ls 有大小限制,并不能让你当数据库使用。
reus
2019 年 10 月 12 日
写代码把老数据迁移就行了
迁移完就删除
yuang
2019 年 10 月 12 日
d2-admin 的做法是使用版本号和用户 id 作为标识,项目更新后之前的缓存自动失效
hanxiV2EX
2019 年 10 月 12 日
区分用户数据和设备数据,谁生产的垃圾谁收拾。
IsaacYoung
2019 年 10 月 12 日
localStorage.setItem(`${userId: ${key}}`, value)
ashong
2019 年 10 月 12 日
查看有没有某个新数据,没有就全部读取写为新格式
ccyu220
2019 年 10 月 12 日
我们系统用 customer id 来做标识符
xuanbg
2019 年 10 月 12 日
数据要长久保存的话,加上用户 ID 作标识,取的时候用用户 ID 作条件查询即可。不需要长久保存的话,注销的时候清理掉就可以了。
sannyzeng
2019 年 10 月 12 日
先检测一下哪些数据是属于会产生串号的数据,打开的时候直接清除。
后续的新数据都加上用户标识,就可以过渡了
fishbone0
2019 年 10 月 12 日
给缓存附带用户唯一标识,串号是你业务代码有问题
kang77649119
2019 年 10 月 12 日
根据用户 id 存数据, 取数据的时候根据用户 id 取,串号问题解决,老数据也不用清除
sjfkai
2019 年 10 月 12 日
老数据可以在用户访问的时候整体刷一遍,带上用户标识。这样不就可以兼容老数据了…
lands
2019 年 10 月 12 日
存的时候, key 带上用户标识
cococoder
2019 年 10 月 12 日
@kang77649119 但是过渡阶段,用户已经缓存在本地的老数据虽然不用清除,但也没用上了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/608381

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX