Rub*_*ben 8 javascript caching
当使用后退按钮转到DOM已被修改的页面时,我对IE10中的这个问题感到惊讶:
对于行为1或2,我会很满意,但不是3:
因为我赶时间,所以如果有人在进行DOM修改后访问页面(这条信息存储在哈希中),我就强迫重新加载,这是一个非常愚蠢的解决方案(FF和Chrome不需要重装,但现在做).
一个建议是使用localStorage来记住状态,我猜这种功能也被归入history.js.
保持备用副本以便进行比较/以防状态未恢复似乎过度,特别是因为在我们的情况下这是一个可能会影响0.01%用户的问题.就我的目的而言,如果状态尚未完全保存在bfcache中,则强制重新加载就足够了.
我可以"简单地"检测是否存在一个包含所有状态的bfcache?如果是这样,当有人回到DOM被修改的页面时,我可以强制重新加载吗?
小智 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";
Run Code Online (Sandbox Code Playgroud)