mishe / blog

前端碰上的问题或体会
230 stars 39 forks source link

手机微信和webview中localStroage.clear() 清理失败 这是什么鬼? #151

Open mishe opened 7 years ago

mishe commented 7 years ago

检测用户退出的代码:

localStorage.clear();
location.reload();

可以看到明确的调用了clear方法。

但是localStroage就是没有清除,这个可以由fiddler 的抓包数据可以证明。

这是碰上什么鬼?

百度了下:可以查到 https://segmentfault.com/q/1010000002739402 这个帖子,但回答的牛头不对马嘴

还是得靠google了,可以查到如下的地址

http://stackoverflow.com/questions/7667958/clear-localstoragehttps://github.com/thoughtbot/capybara-webkit/issues/301

看上去似乎是webkit的事啊,那么在无法控制webkit升级的情况下,怎么解决这个问题呢?

我尝试了如下代码

 localStorage.clear();
 setTimeout(function(){
       if(localStorage.length>0){
               window.localStorage.clear();
        }
        location.reload();
 },50);

调用clear后,在通过一个延时检测localstorage是否真的已经没有数据了,如果还有,在清理一次