2011-12-19 74 views
1

我正在用Ajax部分更新頁面,這是一個購物車,隨着用戶添加項目到Ajax更新。問題是,如果用戶移動到結賬,然後點擊返回按鈕,購物車看起來是空的,因爲它是用Ajax更新的。刷新頁面會使項目再次出現。部分ajax更新與後退按鈕

有沒有辦法強制更新後退按鈕上的頁面?

+0

確切的重複http://stackoverflow.com/questions/1470249/force-application-refresh-on-back-button – Pierre 2011-12-19 20:29:33

回答

0

如果您在ajax應用程序中使用history.pushstate,您可以將卡的內容保存在全局命名空間(例如window.cartItems = {item1,item2,...})中的變量中,後退按鈕被按下,前一個按鈕被再次渲染,從該全局對象中獲取你的項目。

+0

問題是,第二頁不是Ajax!所以我從一個頁面移動到另一個頁面,而不必通過Ajax進行更新! – Tam 2011-12-19 21:40:52

+0

如果您在非ajax頁面上仍然有Javascript代碼,則可以對其進行處理,因爲可以從每個啓用jscript的頁面訪問全局變量。 – 2011-12-19 22:30:53

0

我會建議不要改變後退按鈕本身的行爲。用戶期望後退按鈕將他們帶回頁面,而不是執行其他任何操作。

我會建議一種不同的方法。例如,您可以在購物車頁面上運行一段JS。該腳本將從後端獲取所有購物車數據。腳本可以在頁面加載時運行一次,以確保購物車是最新的。