我有一些jQuery在用戶執行操作後修改頁面上的元素。這些都是持久的服務器端,所以這一切都看起來不錯,流暢的用戶。Opera後退按鈕緩存功能
當用戶點擊關閉網站,然後點擊後退按鈕所有的瀏覽器除歌劇重新請求的頁面,因此更改仍然顯示給用戶。但是,Opera使用Opera返回到Jquery之前的狀態(因爲它沒有從服務器請求頁面)。
我可能做一些討厭的事情,如檢查瀏覽器和刷新,如果Opera,但顯然這並不理想。
解決此問題的更好方法的任何想法?
我有一些jQuery在用戶執行操作後修改頁面上的元素。這些都是持久的服務器端,所以這一切都看起來不錯,流暢的用戶。Opera後退按鈕緩存功能
當用戶點擊關閉網站,然後點擊後退按鈕所有的瀏覽器除歌劇重新請求的頁面,因此更改仍然顯示給用戶。但是,Opera使用Opera返回到Jquery之前的狀態(因爲它沒有從服務器請求頁面)。
我可能做一些討厭的事情,如檢查瀏覽器和刷新,如果Opera,但顯然這並不理想。
解決此問題的更好方法的任何想法?
不是一個回答我的問題,但它出現在以下解決我的問題:
history.navigationMode = 'fast';
設置,這意味着頁面會被loade d的確切狀態是,當你離開頁面時,這基本上是我在尋找的內容。它似乎只是一個Opera設置,儘管它似乎只是Opera的不同行爲。
我查到的資料here。
你能也許使用一些HTML5本地存儲保存這些變化的客戶端(對於那些具有兼容HTML5瀏覽器的用戶),並適度降低,爲那些沒有服務器的請求。
經過快速瀏覽 - Opera似乎開始在Opera 10.5中支持LocalStorage(早在2010年初),我認爲它也會自動更新,因此2.7%的使用Opera的用戶中大多數應該具備此功能。
我建議使用http://www.modernizr.com/檢查的官能團的存在,然後可能存儲在對象文本JSON的結果,結果到本地存儲(應使存儲和檢索更方便!)
(HTML5本地存儲指南 - http://php-html.net/tutorials/html5-local-storage-guide/)
歌劇有一些技巧,以確定一個頁面是否需要一個歷史導航「重新初始化」。啓發式方法包括頁面是否正在監聽卸載事件(因爲我們無法「撤消」卸載事件所做的任何事情),以及導致導航的代碼是否從單擊事件中運行(因爲腳本通常禁用按鈕並且不容易可逆更改頁面的狀態)。如果您可以避免觸發啓發式(Keep It Simple),那麼即使沒有history.navigationMode hack,問題也應該消失。
酷!作爲Opera用戶很高興看到網絡開發人員認爲它:) – alf