2011-11-18 86 views
2

我正在試驗HTML5緩存,並且我偶然發現了一個問題。HTML5 Cache fallback

CACHE MANIFEST 

/Default.aspx 
/Offline.aspx 
/js/jquery-1.6.4.min.js 
/js/jquery.mobile-1.0rc2.min.js 
/css/jquery.mobile-1.0rc2.min.css 
/css/images/ajax-loader.png 
/css/images/icons-18-white.png 

FALLBACK: 
/Offline.aspx 

NETWORK: 
* 

所以我的起始頁面是Default.aspx的,當設備處於脫機狀態,應該重定向到/Offline.aspx但事實並非如此。現在我所能想到的是因爲/Default.aspx被緩存。 現在讓我們說,我從清單中刪除/Default.aspx,它仍然會被緩存,因爲它引用了HTML標籤中的清單。

我讀過幾十頁關於html緩存但我找不到答案。 任何建議將是偉大的!

感謝

回答

0

是的,這是你應該期望,因爲如果引用該清單的頁面中表現出來(明確)不申報,將被視爲清單的一部分隱式的行爲「主「頁面 - 從這一點起,前進將被緩存並且不會更新,直到清單更改。

直到我體驗到相同的行爲(在我添加離線功能的應用程序中)並深入規範以更好地理解所觀察到的行爲之前,這並不完全清楚。

我對這個解決方案是把該頁面的動態部分爲獨立的Ajax調用,這樣即使頁面被緩存(或明或暗地),其更新它的部分繼續通過(非緩存進行更新)Ajax調用。但是,如果您希望它們在脫機時表現得很好(或者如果沒有,則處理所產生的Ajax錯誤),您將希望爲所述Ajax調用創建回退條目。