2013-04-28 38 views
3

好吧,我正在爲需要脫機功能的ASP.NET MVC 4移動應用程序構建PoC,並且我有幾個問題關於我是否正確設計應用程序,以及我將從緩存中獲得什麼行爲表現。HTML5緩存清單緩存與常規瀏覽器緩存的工作方式不同嗎?

我正在使用PoC進行工作,但在將清單屬性添加到我的Layout.cshtml後,我正在觀察工作控制器操作中的奇怪行爲。

在添加屬性之前,每次我請求該URL時,我在控制器操作上的斷點每次只會被擊中一次。添加它後,第一次請求頁面(第一次)時,斷點將被命中3次,並且直到我手動刪除本地緩存清單時,斷點纔會被擊中。

沒有其他變化,所以這讓我相信這種類型的脫機緩存的工作方式與瀏覽器緩存的常規方式不同。我在想,因爲我訪問的頁面在清單中列出,所以第一次觸發斷點,因爲我請求了頁面,然後第二次,因爲它在清單上列出。

這已經很奇怪了。這是爲什麼?

除此之外,它爲什麼第三次被擊中?

我已驗證,如果手動刪除本地緩存清單並從html標記中刪除清單屬性,則行爲將消失,因此這很可能是罪魁禍首。

任何人都可以解釋發生了什麼事嗎?謝謝。

+0

是否所有瀏覽器都顯示此行爲? – ZippyV 2013-04-28 20:03:17

+1

好問題ZippyV。我只是重新測試了整個事情,Chrome現在似乎只是兩次觸發斷點,而不是三次。我也用IE測試過,它確實是兩次觸發斷點。 – GR7 2013-04-28 20:07:37

+1

我已經證實它只是現在被擊中兩次..並且由於該動作的Url被列在清單上,因此有可能被擊中兩次。一個用於我正在做的請求,另一個用於清單...但值得讚賞的是來自對這個主題更有見識的人的確認。 – GR7 2013-04-29 15:54:41

回答

1

好吧,沒有人回答,我已經不能再現被擊中的斷點3次,儘管我確信它發生了幾次。

是的,appcache或html清單緩存以與常規緩存不同的方式工作。

第一次訪問一個頁面,該頁面在其html標籤上具有manifest屬性,清單中列出的同一頁面向服務器請求同一頁面。

如果有人想添加任何東西,我會回答wiki。

+0

偉人GR7! ;)我仍然在學習你的發現...... – 2014-05-12 02:08:29