因爲ios的性能在緩存頁面比較好,因此通常頁面的後退都會保存以前的歷史頁面,javascript
不會觸發頁面上的js等,因此能夠觸發到popstate事件,而webkit的某些版本對popstatejava
的理解與官方標準不一致,致使每次訪問頁面都會同步爲訪問了這個頁面的歷史紀錄,ios
因此popstate就被觸發了,而在項目中須要IOS一個後退刷新頁面web
代碼:瀏覽器
window.addEventListener('popstate', function() { window.location.reload(); });
但進入頁面後頁面不斷的觸發以上方法,刷新頁面,這個webkit的對popstate的詭異行爲致使的。緩存
window.onload=function(){ setTimeout(function(){ window.addEventListener('popstate', function() { window.location.reload(); }); },0) }