HTML5缓存清单缓存与常规浏览器缓存有不同的工作方式吗?

3

好的,我正在为一个需要离线能力的ASP.NET MVC 4移动应用程序构建PoC,并且我有几个问题,关于我是否正确设计了应用程序以及缓存清单会得到什么行为。

我正在进行PoC,但是在将manifest属性添加到我的Layout.cshtml之后,我观察到一个工作控制器操作的奇怪行为。

在添加属性之前,每次请求该URL时,我在控制器操作上设置的断点只会被触发一次。添加后,第一次请求页面时(第一次),断点会被触发3次,并且在手动删除本地缓存的清单之前,不再触发。

除此之外,没有任何变化,所以这使我相信这种离线缓存的工作方式与浏览器缓存的常规方式不同。我认为由于我访问的页面列在清单上,因此第一次请求时断点会被触发,然后第二次是因为它列在清单上。

这已经很奇怪了。为什么会这样?

除此之外,为什么还会第三次触发?

我已经验证如果手动删除本地缓存的清单并从html标记中删除清单属性,则行为会消失,因此这很可能是罪魁祸首。

请问有人能解释一下发生了什么吗?谢谢。


所有的浏览器都表现出这种行为吗? - ZippyV
1
不错的问题ZippyV。我刚刚重新测试了整个过程,Chrome现在似乎只命中断点两次,而不是三次。我也用IE进行了测试,它确实会命中断点两次。 - GR7
1
我已确认现在只被击中了两次...鉴于操作的Url在清单上列出,可能是因为这个被击中了两次。一次是我发起的请求,另一次是清单...但如果有更多相关知识的人能够确认一下就更好了。 - GR7
1个回答

1

好的,没有人回复我了,我也无法再次重现断点被触发3次的情况,尽管我确定它发生了几次。

是的,应用缓存或HTML清单缓存的工作方式与常规缓存不同。

在第一次访问一个页面时,该页面在其HTML标记上具有清单属性,并且清单中列出的相同页面会向服务器请求相同的页面。

我将答案变成维基以便其他人可以添加任何内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接