2013-05-30 30 views
1

使用django構建網站。在我的顯示頁面上,我有一個項目列表(帶有名稱結果),並且我使用過濾器來篩選「結果」,並使用ajax調用在顯示頁面上獲取另一個「過濾」列表。點擊後退按鈕轉到最近狀態

現在當我去其他頁面,然後單擊後退按鈕,我回到頁面選擇的過濾器,但結果未被過濾(我想要「過濾器」列表而不是「結果「列表返回)。使用後退按鈕後,如何才能達到最新狀態?基本上,所有使用javascript完成的事情以及隨後的操作都會被刷新。

任何人都可以幫助我。謝謝。

回答

0

瀏覽器歷史行爲變得複雜,但我使用的一種技術是將狀態嵌入到散列中。這將使瀏覽器將每個不同的哈希值視爲歷史記錄中的不同頁面,並且還可以讓您執行諸如爲特定過濾器選擇狀態添加書籤等內容。我沿着這些線使用jquery:

$(function() { 
    if (window.location.hash) { 
    // parse the hash and update your filter settings, then get the content and display it 
    }; 

    function update_hash() { 
    // calculate the hash based on your filter 
    window.location.hash = new_hash; 
    }; 

}; 

然後綁定update_hash作爲更改的事件處理程序。