如题,当然出现这个问题是当初设计的问题,没有做唯一标识识别,解决串号简单,但是该如何兼容老数据是个问题,如何保证上线后,不影响之前用户已经缓存在本地的数据
如题,当然出现这个问题是当初设计的问题,没有做唯一标识识别,解决串号简单,但是该如何兼容老数据是个问题,如何保证上线后,不影响之前用户已经缓存在本地的数据
|
fengxianqiOct 11, 2019 via Android
1
让旧数据全部失效
|
|
murmurOct 11, 2019
2
注销的时候不清除数据么?或者用 cookies,
|
|
ayase252Oct 11, 2019
3
注销清空所有保存的状态
|
|
lneoiOct 11, 2019
4
退出时清空,或者登陆存数据时清空旧数据,也可以增加一个字段做用户识别,看你具体数据情况
|
|
5
串号明显是你的业务代码有问题.
建议做给导图理清楚自己的登录系统的逻辑. 毕竟用 localStorage 存 token 也好还是其他,那么多人用都没什么问题 |
|
liuy1994gOct 12, 2019 via Android
6
你们什么数据这么重要还存本地,直接作废不就行了
|
|
keeliiOct 12, 2019
7
用 ls 有个基本的逻辑,如果缓存的数据是没有个体差异的那就随便存,如果有那就要在缓存中添加必要的字段来区分数据。不过你得考虑到 ls 有大小限制,并不能让你当数据库使用。
|
|
reusOct 12, 2019
8
写代码把老数据迁移就行了
迁移完就删除 |
|
yuangOct 12, 2019 via Android
9
d2-admin 的做法是使用版本号和用户 id 作为标识,项目更新后之前的缓存自动失效
|
|
hanxiV2EXOct 12, 2019 via Android
10
区分用户数据和设备数据,谁生产的垃圾谁收拾。
|
|
IsaacYoungOct 12, 2019
11
localStorage.setItem(`${userId: ${key}}`, value)
|
|
ashongOct 12, 2019 via iPhone
12
查看有没有某个新数据,没有就全部读取写为新格式
|
|
ccyu220Oct 12, 2019
13
我们系统用 customer id 来做标识符
|
|
xuanbgOct 12, 2019
14
数据要长久保存的话,加上用户 ID 作标识,取的时候用用户 ID 作条件查询即可。不需要长久保存的话,注销的时候清理掉就可以了。
|
|
sannyzengOct 12, 2019
15
先检测一下哪些数据是属于会产生串号的数据,打开的时候直接清除。
后续的新数据都加上用户标识,就可以过渡了 |
|
fishbone0Oct 12, 2019
16
给缓存附带用户唯一标识,串号是你业务代码有问题
|
|
kang77649119Oct 12, 2019
17
根据用户 id 存数据, 取数据的时候根据用户 id 取,串号问题解决,老数据也不用清除
|
|
sjfkaiOct 12, 2019
18
老数据可以在用户访问的时候整体刷一遍,带上用户标识。这样不就可以兼容老数据了…
|
|
landsOct 12, 2019
19
存的时候, key 带上用户标识
|
|
20
@kang77649119 但是过渡阶段,用户已经缓存在本地的老数据虽然不用清除,但也没用上了
|
|
kang77649119Oct 12, 2019
22
@cococoder 那就需要看看老数据中是否有数据来区分是属于哪个用户了,如果不属于当前用户就不要使用,属于当前用户就以当前用户为 key,再存一次。
|
|
23
@kang77649119 hhh 又绕回来了....如果能区分属于哪个用户的,那就不会出现串号的情况了
|
|
KuroNekoFanOct 12, 2019
24
要么就是特定用户 id 对应特定信息,要么就是切换用户的时候清空信息
|
|
25
@fengxianqi 简单粗暴
|
|
IxiziOct 12, 2019
26
默认用老数据 切换用户的时候把老数据清了 切完了存带标识的数据
|
|
MiBAOOct 12, 2019
27
这种明显应该是要清除的吧 ,感觉信息尽量不要留着用了就销毁掉 , 退出的时候记得清一些没有清的
|
|
rioshikelong121Oct 12, 2019
28
自己封装一下 localStorage. 我们项目就是这么干的。
ls 只存非敏感的用户信息。并且对于特殊字段加密存储。 当时这么做的目的是: 因为有好几个网站共用了一个域名,所以封装了一下 localStorage. 在存储的时候自动添加站点前缀做隔离。 |
|
29
@rioshikelong121 嗯,是自己封装的 ls,要是最开始前缀用的是用户标识就不会有串号的问题了
|