2010-03-09 25 views
1

我們有一個在iPhone上運行的web應用程序。
清單文件正常,並且資源(html,css,js)被正確緩存。
頁面位於主屏幕中。HTML5緩存清單文件本身沒有被緩存,並在每個資源加載時調用

問題是,當頁面從緩存中加載資源時,還有一個GET調用來讀取緩存清單文件的服務器。
將服務器配置爲發送正確的標頭(max-age = 31536000; public等...),並緩存除緩存清單本身以外的所有其他文件。

這是正常行爲嗎?由於這種呼叫,每個資源負載看起來都有一點滯後。
任何想法,如果這些多個呼叫可以獲得304或甚至更好地避免狀態?

回答

1

你應該check the spec for details,但是清單文件定期檢查更新(每次會話,每小時或...)並且不遵循http-header-cache指令是合乎邏輯的,但它如果這種情況發生在緩存中的文件的每個請求上都不合邏輯。

所以這可能實際上是您的代碼或移動Safari瀏覽器中的錯誤?

規範提到支持http 304響應代碼,所以確保發送可能確實是一個解決方案。

+1

感謝您的回答。我通過iframe加載資源。每次加載iframe時,都會調用緩存清單,但XHR不存在此問題。 - >沒有更多的iframe加載;) – Mic 2010-03-12 20:53:20