亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何實現“歷史記錄”后退按鈕

如何實現“歷史記錄”后退按鈕

PHP
qq_遁去的一_1 2022-08-19 15:45:22
我有一個網站顯示客戶的詳細信息()。此頁面可以從網站內的不同位置加載。www.mysite.com/client.php?id=1234我想有一個“后退按鈕”到上一頁。我的第一個解決方案是使用.這通常工作正常。<a href="javascript:window.history.back();">back</a>但原因在于,客戶端的詳細信息可以編輯(通過引導模式)。推送“保存”后,將存儲數據并再次加載客戶端的詳細信息()以顯示正確(更新)的數據?,F在,上述解決方案不再正常工作,因為需要按兩次“后退按鈕”才能到達“入口”站點。www.mysite.com/client.php?id=1234問題:1)JavaScript解決方案是正確的,還是我必須實現服務器端數組來跟蹤歷史記錄日志(聽起來很重)?2)更新后重新加載網站有什么問題嗎?或者,在這種情況下,是否可以阻止客戶端歷史記錄?3)還有其他想法嗎?感謝您的支持!
查看完整描述

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 對象。


我希望這能給你一些想法。


查看完整回答
反對 回復 2022-08-19
  • 1 回答
  • 0 關注
  • 88 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號