我有一個數據列表,用戶可以通過使用AJAX數據分頁並將該數據追加到容器中。如果用戶點擊任何條目轉到另一個頁面,並且他們單擊瀏覽器上的本機後退按鈕,則任何AJAX附加數據都不會再列在DOM上。我該如何解決這個問題?這是一個jQuery的問題?未保存在後退按鈕上的AJAX DOM元素
我試過在分頁發生時(#第2頁)更改URL哈希,但它仍然不會留在那裏,一旦他們回擊。
任何想法?
我有一個數據列表,用戶可以通過使用AJAX數據分頁並將該數據追加到容器中。如果用戶點擊任何條目轉到另一個頁面,並且他們單擊瀏覽器上的本機後退按鈕,則任何AJAX附加數據都不會再列在DOM上。我該如何解決這個問題?這是一個jQuery的問題?未保存在後退按鈕上的AJAX DOM元素
我試過在分頁發生時(#第2頁)更改URL哈希,但它仍然不會留在那裏,一旦他們回擊。
任何想法?
基本上,你必須在數據的某個地方編寫數據才能存在。沒有客戶端持久性,這意味着服務器端持久性。這意味着他們編輯數據時,必須將其寫回服務器。我知道有一些技術進入瀏覽器,允許客戶端使用某種版本的持久性,但我沒有自己研究它們。您可以查看http://tiddlywiki.com/。該單頁面應用程序在某些瀏覽器中使用各種機制,包括可信的小應用程序將數據重寫回文件系統的頁面,以便在用戶返回時用戶所做的更改將保留並可用。但這不同於生活在http://土地。在網絡世界中,您將持久數據重寫回服務器。
我不確定我關注 - 看看像foursquare這樣的頁面。您可以向下滾動您的活動源,並且會爲您添加數據。然後進入一個項目,點擊後退按鈕。內容將仍然存在。我不想保存數據,只是將它添加到瀏覽器的緩存中。它不應該在後退按鈕上加載新版本的頁面。對? – gregavola
您必須使用history.pushState(),然後在點擊後退按鈕更新頁面時處理'popstate'事件。 –
「後退」按鈕會要求瀏覽器加載其他頁面。除非您採取一些特定的操作來保存它,否則您在當前頁面中加載的任何內容都將丟失。也許你可以看看localStorage或者cookies,但是你仍然需要一些代碼來將它應用到你正在加載的頁面上。請參閱@MikeEdwards評論。 – 2013-11-14 19:15:44
@MikeW不完全正確。可以運行單頁面應用程序,利用歷史記錄呈現不同的內容,但都在同一頁面中 – charlietfl