UPDATE:我的HTML5應用程序緩存清單是緩存一切
**我張貼了這個問題,當這個功能真的很新的,我現在這個功能不應該用這樣的方式,除非它是通過JavaScript用來實現。但對於大多數初學者來說,這種攻擊似乎是一個很好的解決方案,他們犯了同樣的錯誤和濫用此功能。如果你希望緩存除了你的HTML的一切,應與JS做或者你可以使用下面的解決方案**
我想我的問題歸結爲: 如果文件參考使用的清單屬性清單HTML標籤屬於MASTER CACHE ENTRIES,你怎麼能有一個動態頁面使用清單。
我的文件是這樣的:
CACHE MANIFEST
CACHE:
# IMAGES:
/stylesheets/bg.jpg
/stylesheets/cont_bg.png
#and so forth..
#EXTERNAL
http://chat.mydomain.com/themes/images/panel_bg.png
http://chat.mydomain.com/themes/images/images_core.png
####################################
#STYLE SHEETS:
/stylesheets/min.css
/stylesheets/css_night.aspx
#####################################
#JAVASCRIPT:
/JAVASCRIPT/header_javascript.js
#EXTERNAL:
http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js
http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
FALLBACK:
//offline.php
NETWORK:
*
現在的問題是,一旦我瀏覽一個頁面在清單中不是,我的實際動態的PHP文件一樣的index.php,當我第一次看到的頁面,並在那裏沒有緩存的鍍鉻進:
Adding master entry to Application Cache with manifest http://208.109.248.197/manifest.appcache
Application Cache Downloading event
Application Cache Progress event (0 of 28)
...
Application Cache Progress event (28 of 28)
Application Cache NoUpdate event
到目前爲止好,直到我真正加載頁面,鉻雲:
Application Cache UpdateReady event
Adding master entry to Application Cache with manifest http://mydomain.com/manifest.appcache
現在,你可以把它添加的index.php到我的應用程序緩存的最後一行看到,我已經轉到URL驗證了這一點:chrome://appcache-internals/
它說:
Flags URL Size (headers and data)
Explicit, http://mydomain/JAVASCRIPT/header_javascript.js 57.5 kB
Master, http://mydomain/home.php 51.2 kB
Master, http://mydomain/index.php 53.5 kB
Master, Fallback, http://mydomain/offline.php 49.4 kB
那裏的東西像的index.php並且home.php不應該被緩存。我想告訴它不要緩存任何html擴展如果可能的話。但這裏是我從各種RFC中學到的東西,我相信: 一個在線白名單通配符標誌,它可以是打開的或是阻止的。
The open state indicates that any URL not listed as cached is to be implicitly treated as being in the online whitelist namespaces; the blocking state indicates that URLs not listed explicitly in the manifest are to be treated as unavailable.
好,我想用這些在線白名單通配符的標誌之一,它設成阻塞,但我不能進一步找到任何解釋或實例。 我也讀:
zero or more URLs that form the online whitelist namespaces.
These are used as prefix match patterns, and declare URLs for which the user agent will ignore the application cache, instead fetching them normally (i.e. from the network or locale HTTP cache as appropriate).
我也想用這樣的一些模式,但後來我又找不到任何文檔。爲什麼沒有appcache清單文檔的標誌,也沒有其他網站我一直在使用它,因爲我的chrome appcache目錄顯示沒有!?!?
謝謝你的時間!
這對我很好。謝謝張貼。 – 2012-03-14 20:11:14
我的理解是,我的觀點是:你如何使用應用程序緩存並將其引入瀏覽器,而不包括主HTML頁面本身......如果這是有道理的。 – Neo 2012-08-13 21:28:39
@Neo您可以使用「無存儲」緩存指令爲主頁提供您不想緩存的主頁。 – oberhamsi 2012-10-16 14:35:16