开发移动端项目,需要前端页面存储一些用户数据是一个常见的功能,sessionStorage和localStorage就是常用的选择,最近移动端项目用到sessionStorage时遇到一些问题,
(如:vivo手机自带浏览器)问题如下:
A.html页面记录一条数据,
sessionStorage.setItem("data","123");
B.html页面获取数据
sessionStorage.getItem("data");//结果为null;
测试结果:其实并不是这个浏览器不支持sessionStorage,因为还能获取到window.sessionStorage这个对象,sessionStorage是一个会话级别的存储,有些浏览器在跳转的时候是系统打开了一个新的webView,把原来的关了,也就相当于在浏览器打开了一个新的窗口。这样就和sessionStorage原理冲突了,自然在新的页面就获取不到了;
由于业务逻辑需求,我还是选择了sessionStorage;我的解决办法是先存到localStorage; 用localStorage做了一个过渡,新的页面window.localStorage.clear();