解決蘋果手機返回不刷新問題
問題描述:
js返回上一頁的實現 : 1) history.go(-1);
2) history.back();
3) history.back(-1);
第一種方法在蘋果手機上返回上一頁並不刷新,導致在上一個頁面中的狀態未更新,第二三中方法沒實驗,估計也會有這個問題,在安卓手機上功能正常。
解決辦法:
比如現在有 a.html 和 b.html ,從 a.html 跳到 b.html 進行操作,b.html
1、在 a.html 中的ajax請求url中添加隨機數
這個方法在微信端ios 系統9之前的版本可以,但是在app中無效。
2、spa(單頁路由)
這個方法可以完美解決該問題。
3、window.location.href = ‘./a.html‘
該方法能解決這個問題,但是會帶來一個新問題:返回進入死循環
4、監聽 pageshow 和 pagehide 方法
感覺這個是最好的辦法了,對頁面的改動不太大,只需在js中添加如下代碼即可
$(function () {
var isPageHide = false;
window.addEventListener(‘pageshow‘, function () {
if (isPageHide) {
window.location.reload();
}
});
window.addEventListener(‘pagehide‘, function () {
isPageHide = true;
});
});
解決蘋果手機返回不刷新問題