1 回答

TA贡献1821条经验 获得超4个赞
后退按钮通常会将用户带回上一个 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 关注
- 69 浏览
添加回答
举报