2009-06-28 249 views
0

我有一個網頁執行多個ajax請求並被修改,所有的ajax請求都緩存在頁面上。然後用戶單擊某個鏈接並對另一個頁面執行同步請求。然後用戶點擊瀏覽器的「返回」按鈕。之前通過ajax加載的所有數據都會丟失。是否有可能在用戶點擊瀏覽器中的「返回」按鈕後恢復頁面狀態,以便以前加載的所有數據在沒有新的Ajax請求的情況下恢復?ajax在瀏覽器中導航請求

jQuery歷史插件提供了一些幫助,它允許返回到頁面的正確位置,但它執行必要的ajax請求。另外,如果有很多Ajax請求,很難將它們正確存儲在歷史記錄中。

有沒有辦法解決我的問題,而不使用cookie或服務器端?

+0

沒有使用歷史,它會變得非常複雜。否則,你必須pushState()以獲得關於當前狀態的信息。雖然在這種情況下,Cookie可能不是一個好主意。保存在服務器上的會話是一個很好的解決方案,但是,當用戶幾天後回到該頁面時,他不太可能確切地看到他以前的內容可能不是您想要的內容...... – 2015-01-12 01:35:55

回答

0

Really Simple History提供了一個非常靈活的API來管理後退按鈕的功能。

+0

I不要認爲歷史允許恢復加載的Ajax數據。 – braz 2009-06-28 23:12:38

1

有沒有辦法解決我的問題 沒有使用cookie或服務器端?

答案很可能是「不」。用於JS的數據由服務器提供的內容驅動。爲了保存信息,您需要將其存儲在服務器上併發送回去。

嚴格使用JS的概念將不必要地牽絆您的手。在AJAX調用服務器期間將這些東西保存到一個會話變量中(因爲它與服務器進行通信)可能是一個相當直接的實現。