這個問題是這樣:
當你使用行動裝置上的 Safari 瀏覽 A.html 再連到 B.html,這時按瀏覽器上的後退鍵退回前一頁(A.html),這時會發現 A.html 上的 javascript 都不會被執行。根據其他人的經驗,這個問題只發生發生在行動裝置上的 Safari,我在 Mac OSX 10.10 Safari 8 的確無法重現這個問題。
主因是 back-forward cache (bfcache) 造成,這個 cache 會保存 JavaScript 的狀態,也不會再載入一次頁面,因此如果有些初始化的 JavaScript 並不會再被執行一次。
可以參考 http://stackoverflow.com/questions/8788802/prevent-safari-loading-from-cache-when-back-button-is-clicked 的程式碼,寫一段強制重載的 JavaScript 就可以解決這個問題。
以下這個方法我試過沒有用:
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="pragma" content="no-cache">
留言