sessionStorage 和 localStorage 的替代方案

水墨寒
  • 1.1k

先描述下场景:
列表页面有很多筛选条件,点击跳转详情页面,希望返回的时候,记录筛选条件。
面对这个需求,我第一反应就是用 sessionStorage localStorage 按说没什么问题,但是最近测试被打回,因为用户会开启隐私模式。
在隐私模式,是无法用 sessionStorage localStorage cookie,筛选条件比较多,带参数也不合适。

求有无比较好的解决方案,暂时没想到。

项目是用Vue-roter实现,虽然题目跟框架没关系,但是同时期望能Vue-roter解决方案更好不过了。

回复
阅读 8.5k
10 个回答
垃圾sf
  • 873

既然不能本地存储,而且页面还会跳转,那当然所有思路都指向了通过服务器返回筛选条件这一种方式了。
然后有的选择的地方就是:

  1. 可以地址栏?后面挂着筛选的参数(当然,restful的话就不太合适了)

  2. 当作请求参数发送给服务器

说个题外话,如果是因为项目特殊性导致开启隐私模式的用户百分比很高的话,那就不说什么了,否则不需要考虑隐私模式,毕竟怎样也避免不了奇怪的用户,那还有人禁用脚本呢~

希望可以帮到你 :P

表单 get 记录用户的筛选。

服务器端的session记录

如果单纯的是sessionStorage的话,其实还好,自己自定义一个全局cache,就类似sessionStorage一样,在cache上进行对象添加和移除,这种只适合当前会话的场景。如果localStorage的话,建议存数据库,因为要永久保存对应数据。

建议用cookie试试 如果存储量少的话

w567675
  • -2
新手上路,请多包涵

try
{ sessionStorage }
cacth()
{ cookie }
这样可以,就是数据量在cookie上有点限制

啊哈哈哈哈
  • 1
新手上路,请多包涵

写在url.hash里 在js里面判断

在服务器端存一份筛选条件,我目前就这样的,保存json格式的数据,每次用户进入都能看到之前的选的条件。再好点可以两者都有,在localstorage中取不到时服务端取,毕竟开启隐身还是少数。

提供另外的思路:列表刷新页面不刷新。

隐私模式是可以使用sessionStorage和localStorage的啊。啊啊。。。。
只是隐私模式不会保护这些数据而已,同样也不会保存用户登录状态、SESSION、COOKIE,有的浏览器又叫小号窗口。
没有必要考虑隐私模式,你可以说服下测试。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏