我正在使用這種技巧,您將一些數據以隱藏形式存儲以便能夠保留它,以便當用戶從頁面導航離開,然後使用BACK按鈕返回時,我可以將數據恢復到頁面沒有再次點擊服務器...如何在頁面重新加載時清除HTML表單,但在用戶導航回到頁面時不能清除?
但是,這個竅門意味着當用戶點擊刷新或重新加載時(甚至在Firefox中移位重載),也會發生同樣的事情。我想要檢測到用戶正在點擊重新加載而不是點擊後退按鈕,以便我可以重新加載時重新開始,但仍然可以在用戶導航離開和返回時恢復以前的數據。
有沒有辦法做到這一點?我一直在調查onbeforeunload事件等,但還沒有想出任何東西。
編輯以解決「爲什麼?」 Josh的問題:
的頁面是與一羣AJAX過濾器的搜索結果頁面。用戶可能花費相當多的時間調整篩選器以獲得他們想要的搜索結果集合...然後,如果他們要麼從頁面上點擊離開,要麼在URL欄中輸入新地址...然後回到頁面,如果我不這樣做,他們將不得不從頭開始並再次進行所有的過濾。對於我們進行可用性測試的用戶來說,這是一次非常令人沮喪的體驗。
這是一種技術精明的用戶可能通過打開新選項卡而不是點擊/打字離開而解決的問題,但不幸的是,我們絕大多數的用戶不是技術高明的,所以顯而易見的解決方案是該頁面在用戶導航回頁面時恢復過濾器/結果。
在另一方面,也有我能想到的,爲什麼用戶會重新載入頁面有兩個原因:
- 在搜索頁面上的結果一個時間敏感的元素在其中,並且用戶可能希望以獲得更多最新的結果。
- 偶爾會出現頁面未正確加載的錯誤。在這兩種情況下,如果我將頁面恢復到保存狀態,它們將得到相同的(舊的和/或破損的)結果,而不是他們期望的新的/固定的結果。
希望清除它。
的問題是,這個(隱藏)形式從未提交 - 只得到從JavaScript寫入數據(序列化對象圖以它爲用戶與頁面交互),它總是被頁面加載重新加載,如果它是有... – John 2009-08-14 20:50:47