如何实现“历史记录”后退按钮

我有一个网站显示客户的详细信息()。此页面可以从网站内的不同位置加载。www.mysite.com/client.php?id=1234

我想有一个“后退按钮”到上一页。

我的第一个解决方案是使用.这通常工作正常。<a href="javascript:window.history.back();">back</a>

但原因在于,客户端的详细信息可以编辑(通过引导模式)。推送“保存”后,将存储数据并再次加载客户端的详细信息()以显示正确(更新)的数据。现在,上述解决方案不再正常工作,因为需要按两次“后退按钮”才能到达“入口”站点。www.mysite.com/client.php?id=1234

问题:

1)JavaScript解决方案是正确的,还是我必须实现服务器端数组来跟踪历史记录日志(听起来很重)?

2)更新后重新加载网站有什么问题吗?或者,在这种情况下,是否可以阻止客户端历史记录?

3)还有其他想法吗?

感谢您的支持!


qq_遁去的一_1
浏览 70回答 1
1回答

收到一只叮咚

后退按钮通常会将用户带回上一个 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。例如:&nbsp;www.mysite.com/client.php?id=1234&backdestination=list.php%3Fshow%3D123&nbsp;&nbsp;//list.php?show=123然后,在页面上创建一个按钮/链接,并使用值backdestination更新 2:您可以检查API,特别是方法。从技术上讲,它允许您指定“返回”的位置。但是,您仍然需要跨请求携带 URL。通过 GET 参数、会话变量或本地存储。window.HistoryreplaceStatebackdestination也许您可以通过始终存储最后一个X URL的历史记录来概括实现。然后,如果需要修改后退目标,请使用某种算法来确定用户来自何处。例如,将用户带到脚本文件名不是当前文件名的最后一个 URL:请求历史记录:&nbsp;/list.php&nbsp;/list.php?page=2&nbsp;/client.php?id=123&nbsp; &nbsp; &nbsp;// User viewing the client&nbsp;/client.php?id=123&nbsp; &nbsp; &nbsp;// Page reload after POST现在,如果用户单击后退,则会加载同一客户端.php。但是,您可以创建一个通用脚本,该脚本使用 replaceState() 修改 History 对象。我希望这能给你一些想法。
打开App,查看更多内容
随时随地看视频慕课网APP