Opera后退按钮缓存功能
本文关键字:缓存 功能 按钮 Opera | 更新日期: 2023-09-27 18:10:48
我有一些jQuery,可以在用户执行操作后修改页面上的元素。这些都是在服务器端保存的,所以对用户来说看起来很好,很流畅。
当用户点击离开站点,然后点击后退按钮时,除了Opera之外的所有浏览器都会重新请求页面,因此用户仍然会看到更改。然而,使用Opera,网站会返回到jquery之前的状态(因为它没有向服务器请求页面)。
我可以做一些讨厌的事情,比如检查浏览器并刷新Opera,但显然这不是理想的。
有什么更好的方法来解决这个问题吗?您是否可以使用一些HTML5本地存储来持久保存这些更改客户端(对于那些具有HTML5兼容浏览器的用户),并优雅地降级到服务器请求。
在快速浏览之后- Opera似乎在Opera 10.5中开始支持LocalStorage(早在2010年初),我认为它也会自动更新,所以大多数使用Opera的2.7%的用户应该有这个功能。
我建议使用http://www.modernizr.com/来检查功能的存在,然后可能将结果存储在对象文字JSON中的结果存储到本地存储(应该使存储和检索更容易!)
(HTML5本地存储指南- http://php-html.net/tutorials/html5-local-storage-guide/)
没有一个能回答我自己的问题,但似乎下面的解决了我的问题:
history.navigationMode = 'fast';
设置这意味着页面将以离开页面时的确切状态加载,这基本上是我想要的。这似乎是一个仅限Opera的设置,尽管似乎只有Opera的作用不同。
Opera有一些启发式方法来确定页面是否需要在历史导航上"重新初始化"。启发式包括页面是否正在侦听卸载事件(因为我们不能"撤销"卸载事件所做的任何事情),以及导致导航的代码是否从单击事件运行(因为脚本经常禁用按钮,并且不易对页面状态进行可逆更改)。如果您可以避免触发启发式(保持简单),那么即使没有历史记录,问题也应该消失。navigationMode黑客。