好的,我正在为需要具有离线功能的 ASP.NET MVC 4 移动应用程序构建一个 PoC,我有几个关于我是否正确设计应用程序以及我将从中获得什么行为的问题缓存 list 。
我正在 PoC 上取得进展,但我在将 list 属性添加到我的 Layout.cshtml 后立即观察到工作 Controller 操作的奇怪行为。
在添加该属性之前,每次我请求该 URL 时,我在 Controller 操作上设置的断点每次都会命中一次。添加后,第一次请求页面时断点被击中 3 次(有史以来第一次),并且在我手动删除本地缓存 list 之前它根本不再被击中。
没有其他改变,所以这让我相信这种类型的离线缓存的工作方式与浏览器缓存的常规方式不同。我在想,由于我正在访问的页面列在 list 中,所以第一次命中断点是因为我请求了该页面,然后第二次命中断点是因为它列在 list 中。
这已经很奇怪了。这是为什么?
除此之外,为什么它会被第三次击中?
我已经确认,如果我手动删除本地缓存的 list 并从 html 标记中删除 list 属性,该行为就会消失,所以这很可能是罪魁祸首。
谁能解释一下这是怎么回事?谢谢。
请您参考如下方法:
好吧,没有人回复,而且我再也无法重现被击中 3 次的断点,尽管我确信它发生过几次。
是的,appcache 或 html list 缓存的工作方式与常规缓存不同。
第一次访问在其 html 标记上具有 manifest 属性的页面时, list 中列出的同一页面会向服务器请求同一页面。
我正在将答案设为 wiki,以防有人想添加任何内容。