2011-10-10 75 views
5

我有一些jQuery在用戶執行操作後修改頁面上的元素。這些都是持久的服務器端,所以這一切都看起來不錯,流暢的用戶。Opera後退按鈕緩存功能

當用戶點擊關閉網站,然後點擊後退按鈕所有的瀏覽器除歌劇重新請求的頁面,因此更改仍然顯示給用戶。但是,Opera使用Opera返回到Jquery之前的狀態(因爲它沒有從服務器請求頁面)。

可能做一些討厭的事情,如檢查瀏覽器和刷新,如果Opera,但顯然這並不理想。

解決此問題的更好方法的任何想法?

+0

酷!作爲Opera用戶很高興看到網絡開發人員認爲它:) – alf

回答

0

不是一個回答我的問題,但它出現在以下解決我的問題:

history.navigationMode = 'fast'; 

設置,這意味着頁面會被loade d的確切狀態是,當你離開頁面時,這基本上是我在尋找的內容。它似乎只是一個Opera設置,儘管它似乎只是Opera的不同行爲。

我查到的資料here

0

你能也許使用一些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/

0

歌劇有一些技巧,以確定一個頁面是否需要一個歷史導航「重新初始化」。啓發式方法包括頁面是否正在監聽卸載事件(因爲我們無法「撤消」卸載事件所做的任何事情),以及導致導航的代碼是否從單擊事件中運行(因爲腳本通常禁用按鈕並且不容易可逆更改頁面的狀態)。如果您可以避免觸發啓發式(Keep It Simple),那麼即使沒有history.navigationMode hack,問題也應該消失。