当使用后退按钮转到DOM已被修改的页面时,我对IE10中的this problem感到惊讶:
对于行为1或2,我会很满意,但不是3:
因为我很匆忙,如果有人在进行DOM修改后访问该页面(这条信息存储在哈希中),我就强迫重新加载,这是一个非常愚蠢的解决方案(FF和Chrome don'我需要重装,但现在这样做)。
一个建议是use localStorage to remember state,我猜这种功能也被归入history.js。
保留备用副本以便进行比较/以防状态未恢复似乎过度,特别是因为在我们的情况下这可能会影响0.01%的用户。 就我的目的而言,如果状态尚未完全保存在bfcache中,则强制重新加载就足够了。
我可以“简单地”检测是否存在包含所有状态的bfcache吗?如果是这样,当有人回到DOM被修改的页面时,我可以强制重新加载吗?
答案 0 :(得分:1)
如果已知浏览器用户代理/浏览器未保存修改后的状态,则可以刷新页面。
您也可以在修改状态后将“#modified”附加到URL,因此如果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";