3

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

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

在添加属性之前,每次我请求该 URL 时,我在控制器操作上的断点每次都会被命中一次。添加后,第一次请求页面时(有史以来第一次),断点被击中 3 次,直到我手动删除本地缓存清单时,它才被击中。

没有其他任何改变,所以这让我相信这种离线缓存的工作方式与浏览器缓存的常规工作方式不同。我在想,由于我正在访问的页面列在清单上,断点第一次被击中是因为我请求了该页面,然后第二次因为它被列在清单上。

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

除此之外,为什么会被第三次击中?

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

谁能解释发生了什么?谢谢。

4

1 回答 1

1

好吧,没有人回复,我不再能够重现被击中 3 次的断点,尽管我确信它发生了几次。

是的,appcache 或 html 清单缓存的工作方式与常规缓存不同。

在第一次访问一个页面时,它的 html 标记上有 manifest 属性,清单中列出的同一页面向服务器发出了同一页面的请求。

如果有人想添加任何内容,我正在将答案设为 wiki。

于 2013-05-09T02:45:03.050 回答