Feature-detect bfcache?
Feature-detect bfcache?
本文关键字:bfcache Feature-detect 更新时间:2023-09-26
在IE10中,当使用后退按钮转到DOM已修改的页面时,我对这个问题感到惊讶:
我对行为1或行为2都很满意,但对行为3就不满意了:
- 正确地恢复整个状态(像FF和Chrome做)
- 重新加载页面(因为它不应该被缓存),当前状态可以被重新创建,因为更改是通过Ajax推送到服务器的(IE8做到这一点)
- 但是IE10返回到初始的,未修改的页面(它保留表单输入,如果初始页面上有,但不是整个状态)
因为我很着急,我只是去强制重新加载,如果有人访问页面后做出DOM修改(那块信息存储在哈希),这是一个相当愚蠢的解决方案(FF和Chrome不需要重新加载,但现在做)。
一个建议是使用localStorage来记住状态,我猜这种功能也被卷进了history.js。
保留一个备用副本以供比较/以防状态未恢复,这似乎是多余的,特别是因为在我们的情况下,这个问题可能会影响0.01%的用户。出于我的目的,如果状态没有完整地保存在bfcache中,强制重新加载就足够了。
我可以"简单地"检测是否存在包含所有状态的bfcache吗?如果是这样,当有人返回DOM被修改过的页面时,我可以强制重新加载它。
如果已知浏览器user-agent/browser不保存修改后的状态,则可以刷新页面。
你也可以在状态被修改后的URL后面附加"#modified",所以如果URL包含"#modified"但状态是默认的,你就知道你应该刷新页面,因为状态没有被正确缓存。
if(document.location.hash == "#HelloWorld")
{
// Check if state is default
// If state is default, the page should be refreshed
}
document.location.hash = "#HelloWorld";
相关文章:
- feature.getId() 在使用 ge.parseKml() 加载时返回 null
- BFcache被卸载事件禁用(后退-前进缓存)
- 尝试使用Rally SDK 2.0rc3提供的DeepCopy函数来复制MMF/Feature获取错误对象不是一个函数
- 在 data.feature 对象上添加工具提示,就像我们可以对标记所做的那样
- JavaScript-bfcache/pageshowevent-event.persisted始终设置为false
- 返回按钮/bfcache:通过jquery隐藏在DOM中的对象在返回时再次可见
- Feature-detect bfcache?
- javascript console.log new feature with 'raw'?
- javascript es6 set feature
- 在Open Layer中右键单击Feature Vector (Javascript)
- OpenLayers => feature is null
- 使用OpenLayers.Feature.Vector在openlayer地图中添加一个标记
- OpenLayers点击选中的Feature触发功能
- Openlayers 3:为feature添加文本标签
- 使用地图 API 的商店定位器库中的“storeLocator.Feature”下拉菜单