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

Ajax,后退按钮和DOM更新

Ajax,后退按钮和DOM更新

慕少森 2019-07-25 20:05:44
Ajax,后退按钮和DOM更新如果javascript修改了页面A中的DOM,则用户导航到页面B,然后点击返回按钮返回页面A.对页面A的DOM的所有修改都将丢失,并且向用户显示最初从服务器检索的版本。它在stackoverflow,reddit和许多其他流行的网站上以这种方式工作。(尝试在此问题中添加测试评论,然后导航到不同的页面并点击返回按钮返回 - 您的评论将“消失”)这是有道理的,但一些网站(apple.com,basecamphq.com等)在某种程度上迫使浏览器为用户提供最新的页面状态。(转到http://www.apple.com/ca/search/?q=ipod,单击顶部的“下载”链接,然后单击“返回”按钮 - 将保留所有DOM更新)来自哪里的不一致?
查看完整描述

3 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

我一直试图让Chrome的行为像Safari一样,而我发现的唯一方法就是设置Cache-control: no-store标题。这会强制浏览器在用户按下后退按钮时从服务器重新获取页面。不理想,但比显示过时的页面更好。


查看完整回答
反对 回复 2019-07-25
?
慕的地10843

TA贡献1785条经验 获得超8个赞

Facebook通过修改Ajax请求的URL中的哈希标识符来记住页面状态。这些更改记录在浏览器历史记录中,因此当用户单击后退按钮时,哈希值将更改为之前的更改。因此,暗示您需要一些Javascript来监视has标识符,并在浏览器更改时做出反应。 Andreas Blixt有一个哈希监控脚本


查看完整回答
反对 回复 2019-07-25
  • 3 回答
  • 0 关注
  • 433 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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