概述: 一个系统登录后,存在一个页面配置一些信息,然后配置完信息可以继续操作其他页面,但是我一般的操作习惯是打开两个标签页,一个标签页就是配置页面一直打开着,另一个标签页就是操作页面;
需求1: 目前我是将部分配置信息放入sessionStorage
中,但是两个标签页的sessionstorage
是不共享的,只有当前页面配置当前页面操作其他页面才有效,至于不用localStorage
的原因是配置信息会一直存着,下次登录后不会更新配置信息。
需求2: 目前前台获取sessionStorage
中的信息的逻辑是这样的,如果存在该item
并且不为空,便直接用了,不会去后台取,这样的问题是多用户端场景时,其他用户更改了配置,当前客户端不能及时获取最新配置信息,我有一个思路是参照http 3xx
的做法,每次前台get配置信息时,都往后台放松一个请求,如果lastmodifiedtime
不变的话,继续用本地的数据,一旦变了便返回最新的配置信息,各位有什么好的建议一起分享出来吧!
不知有没有大侠有比较好的思路和建议
如果我面对这样的需求,我的做法:
需求1: 采用LocalStorage, 但是Key名会携带过期时间,比如item&1494485763;
需求2: 每次请求配置项,request 请求携带最后一次修改时间的cookie值;如果最后修改时间相同,则空返回,使用本地数据;否则返回最新的配置项;
localStorage,然后你在登录页welcome那个页面重置一下,不就可以了吗?
然后需求2就是设置一下过期时间呗。如果上次一个的localstorage过了十分钟了。重新拉取一次数据。
localStorage 或者 indexedDB 均可;
对于缓存的数据的处理,可以设计过期机制,也可以对每次的事务生成 UUID,事务全部完成以后清理掉缓存。
localStorage完全可以解决,在你存储的信息有变化的情况下,更新下localStorage中对应的存储信息就可以了。当然如果有敏感信息是不能存储在浏览器的。