为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
qq_遁去的一_1 2022-08-19 15:45:22
我有一个网站显示客户的详细信息()。此页面可以从网站内的不同位置加载。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)还有其他想法吗?感谢您的支持!
查看完整描述

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


我希望这能给你一些想法。


查看完整回答
反对 回复 2022-08-19
  • 1 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号