1 回答

TA貢獻1821條經驗 獲得超5個贊
后退按鈕通常會將用戶帶回上一個 URL。瀏覽器可能會緩存頁面內容并顯示過時的數據。您可以告訴瀏覽器不要緩存特定頁面。
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
此外,如果一個用戶正在修改數據,而另一個用戶只是在查看數據,則任何特定于用戶的解決方案都將失敗。每次加載頁面時,都必須強制從服務器獲取數據。因此,無緩存標頭
更新:
要將用戶帶回所需的位置,可以使用另一個參數來指定“back”目標 URL。例如:
www.mysite.com/client.php?id=1234&backdestination=list.php%3Fshow%3D123
//list.php?show=123
然后,在頁面上創建一個按鈕/鏈接,并使用值backdestination
更新 2:
您可以檢查API,特別是方法。從技術上講,它允許您指定“返回”的位置。但是,您仍然需要跨請求攜帶 URL。通過 GET 參數、會話變量或本地存儲。window.HistoryreplaceStatebackdestination
也許您可以通過始終存儲最后一個X URL的歷史記錄來概括實現。然后,如果需要修改后退目標,請使用某種算法來確定用戶來自何處。例如,將用戶帶到腳本文件名不是當前文件名的最后一個 URL:
請求歷史記錄:
/list.php
/list.php?page=2
/client.php?id=123 // User viewing the client
/client.php?id=123 // Page reload after POST
現在,如果用戶單擊后退,則會加載同一客戶端.php。但是,您可以創建一個通用腳本,該腳本使用 replaceState() 修改 History 對象。
我希望這能給你一些想法。
- 1 回答
- 0 關注
- 88 瀏覽
添加回答
舉報