先描述下场景:
列表页面有很多筛选条件,点击跳转详情页面,希望返回的时候,记录筛选条件。
面对这个需求,我第一反应就是用 sessionStorage
localStorage
按说没什么问题,但是最近测试被打回,因为用户会开启隐私模式。
在隐私模式,是无法用 sessionStorage
localStorage
cookie
,筛选条件比较多,带参数也不合适。
求有无比较好的解决方案,暂时没想到。
项目是用Vue-roter
实现,虽然题目跟框架没关系,但是同时期望能Vue-roter
解决方案更好不过了。
既然不能本地存储,而且页面还会跳转,那当然所有思路都指向了
通过服务器返回筛选条件
这一种方式了。然后有的选择的地方就是:
可以地址栏
?
后面挂着筛选的参数(当然,restful
的话就不太合适了)当作请求参数发送给服务器
说个题外话,如果是因为项目特殊性导致开启
隐私模式
的用户百分比很高的话,那就不说什么了,否则不需要考虑隐私模式
,毕竟怎样也避免不了奇怪的用户,那还有人禁用脚本
呢~希望可以帮到你 :P
表单 get 记录用户的筛选。
服务器端的session记录
如果单纯的是sessionStorage的话,其实还好,自己自定义一个全局cache,就类似sessionStorage一样,在cache上进行对象添加和移除,这种只适合当前会话的场景。如果localStorage的话,建议存数据库,因为要永久保存对应数据。
建议用cookie试试 如果存储量少的话
try
{ sessionStorage }
cacth()
{ cookie }
这样可以,就是数据量在cookie上有点限制
写在url.hash里 在js里面判断
在服务器端存一份筛选条件,我目前就这样的,保存json格式的数据,每次用户进入都能看到之前的选的条件。再好点可以两者都有,在localstorage中取不到时服务端取,毕竟开启隐身还是少数。
提供另外的思路:列表刷新页面不刷新。
隐私模式是可以使用sessionStorage和localStorage的啊。啊啊。。。。
只是隐私模式不会保护这些数据而已,同样也不会保存用户登录状态、SESSION、COOKIE,有的浏览器又叫小号窗口。
没有必要考虑隐私模式,你可以说服下测试。