2011-01-07 68 views
6

我正在試驗HTML5 appCache功能,因爲我們的Web應用程序使用了大量圖像資源。大多數頁面也不是靜態的,而是基於Django的動態頁面。使用HTML5 appCache和Django動態頁面

問題是,當appCache用於頁面(更像是一個RESTFUL url)時,它會自動下載此頁面,但似乎沒有辦法強制此頁面上有內容更新時無效此頁面而無需更改服務器端的清單文件。

我的問題是,這是否意味着我不能在任何動態頁面上使用appcache?如果不是,我該怎麼做?

回答

1

HTML5中的清單文件無意處理動態更改的資源。它的目的是在應用程序範圍內使用常用和常量資源:CSS,JavaScript和界面元素(圖標,按鈕,徽標,背景等)構成應用程序的外觀和感覺(即使未在當前使用視圖)。這允許通用資源被預取和緩存,以便每個視圖只需要加載它的個性化內容。

1

我認爲我們有一個類似的問題:

My HTML5 Application Cache Manifest is caching everything

我還沒有找到最終的答案,但是從我學到的東西似乎清單並不意味着要在每個頁面上設置。我再次不確定,但這是我遇到的黑客。我有一個頁面,例如具有

<html manifest="manifest.appcache"> 

我才知道,這沒有這個頁面不會被添加到緩存但是他們仍然會繼續使用應用程序緩存,如果在同一個域manifest.html。 Therfore如果包括manifest.html具有此在everypage的iframe一個普通的HTML頁面,將不緩存像Chrome將無法再輸出頁面:

Adding master entry to Application Cache with manifest 

但如果你去到網絡選項卡,你會看到,它是用在HTML標記緩存

所以基本上,而不是把這個正文的開頭清單屬性:temporary_manifest_hack.html的 <iframe id='manifest_iframe_hack' style='display: none;' src='temporary_manifest_hack.html'>

內容:

<!DOCTYPE HTML> 
<html lang="en" id="sexxymofo" class="no-js" manifest="manifest.appcache"> 
    <head> 
     <meta charset="utf-8"> 
     <title>Hack 4 Manifest</title> 
    </head> 
    <body></body> 
</html> 
0現在

因爲你沒有指定具體的問題,我擔心你可能有一個問題,一個有效的清單,記住沒有在清單沒有通配符,使用這個網址來驗證: http://manifest-validator.com/validate

的最簡單的錯誤將導致該清單是無效的,沒有應用程序緩存將被使用,使用Chrome 調試作爲控制檯將記錄過程的每一步,也看到這個網址在Chrome: chrome://appcache-internals/

再看看我在上面的答案中瞭解更多的問題