IOS平台web页面返回时不刷新的问题的解决方案

在开发webApp的时候,我们做的很多都是简单的页面跳转的。在安卓平台没有什么问题,但是在iOS上,返回的页面是一个快照,xhr的数据还是之前的。如果刚刚离开的页面,恰好对上一个页面做了修改,例如粉丝数目,那么返回的页面数据就是滞后的。这会对用户造成困惑。
因此出现了以下解决方案。
方案来源于http://stackoverflow.com/questions/11979156/mobile-safari-back-button

以下是jQuery方案:

$(window).bind("pageshow", function(event) {
    if (event.originalEvent.persisted) {
      	window.location.reload();
      	//当然这里你可以选择自己的解决方案
    }
});

这是原生方案:

window.onpageshow = function(event) {
    if (event.persisted) {
        alert("From back / forward cache.");
    }
};

hq5544

I am 炒饭君. A front-end engineer.

Subscribe to hq5544 blog

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!