亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄 搜索
Attributes accesskey (attribute) class (attribute) contenteditable (attribute) contextmenu (attribute) data-* (attribute) dir (attribute) draggable (attribute) dropzone (attribute) Global attributes hidden (attribute) id (attribute) itemid (attribute) itemprop (attribute) itemref (attribute) itemscope (attribute) itemtype (attribute) lang (attribute) slot (attribute) spellcheck (attribute) style (attribute) tabindex (attribute) title (attribute) translate (attribute) Elements a abbr address area article aside audio b base bdi bdo blockquote body br button canvas caption cite code col colgroup data datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 head header hr html i iframe img input input type="button" input type="checkbox" input type="color" input type="date" input type="datetime"-local input type="email" input type="file" input type="hidden" input type="image" input type="month" input type="number" input type="password" input type="radio" input type="range" input type="reset" input type="search" input type="submit" input type="tel" input type="text" input type="time" input type="url" input type="week" ins kbd label legend li link main map mark menu menuitem meta meter nav noscript object ol optgroup option output p param picture pre progress q rp rt rtc ruby s samp script section select slot small source span strong style sub summary sup table tbody td template textarea tfoot th thead time title tr track u ul var video wbr Miscellaneous Attributes Block-level elements CORS enabled image CORS settings attributes Element Inline elements Kinds of HTML content Link types Microdata Optimizing your pages for speculative parsing Preloading content Reference Supported media formats Using the application cache Obsolete acronym applet basefont big blink center command content dir element font frame frameset hgroup image input type="datetime" isindex keygen listing marquee nextid noframes plaintext strike tt xmp
文字

Deprecated

該功能已從Web標(biāo)準(zhǔn)中刪除。盡管一些瀏覽器可能仍然支持它,但它正在被丟棄。避免使用它并盡可能更新現(xiàn)有的代碼;請(qǐng)參閱本頁(yè)底部的兼容性表格來(lái)指導(dǎo)您的決定。請(qǐng)注意,此功能可能隨時(shí)停止工作。

使用此處描述的應(yīng)用程序緩存功能在這一點(diǎn)上非常令人沮喪;它正在從Web平臺(tái)中移除。改用服務(wù)人員。事實(shí)上,從Firefox 44開始,當(dāng)AppCache用于為頁(yè)面提供脫機(jī)支持時(shí),控制臺(tái)中現(xiàn)在會(huì)顯示一條警告消息。

介紹

HTML5提供了一種應(yīng)用程序緩存機(jī)制,可讓基于Web的應(yīng)用程序脫機(jī)運(yùn)行。開發(fā)人員可以使用應(yīng)用程序緩存AppCache)界面來(lái)指定瀏覽器應(yīng)緩存的資源并使其可供離線用戶使用。即使用戶在脫機(jī)狀態(tài)下單擊刷新按鈕,緩存的應(yīng)用程序也會(huì)正常加載并正常工作。

使用應(yīng)用程序緩存為應(yīng)用程序提供了以下好處:

  • 離線瀏覽:用戶即使在離線時(shí)也可以瀏覽網(wǎng)站。

  • 速度:緩存的資源是本地的,因此加載速度更快。

  • 降低服務(wù)器負(fù)載:瀏覽器僅下載從服務(wù)器更改的資源。

應(yīng)用程序緩存如何工作

啟用應(yīng)用程序緩存

要為應(yīng)用程序啟用應(yīng)用程序緩存,必須在應(yīng)用程序頁(yè)面manifest<html>元素中包含該屬性,如以下示例所示:

<html manifest="example.appcache">  ...</html>

清單屬性引用緩存清單文件,該文件是列出瀏覽器應(yīng)為應(yīng)用程序緩存的資源(文件)的文本文件。

您應(yīng)該manifest在應(yīng)用程序的每個(gè)頁(yè)面上包含要緩存的屬性。瀏覽器不會(huì)緩存不包含manifest屬性的頁(yè)面,除非這些頁(yè)面明確列在清單文件本身中。您不需要列出要在清單文件中緩存的所有頁(yè)面,瀏覽器會(huì)隱式添加用戶訪問(wèn)的每個(gè)頁(yè)面,并將manifest屬性設(shè)置為應(yīng)用程序緩存。

某些瀏覽器(例如Firefox)會(huì)在用戶首次加載使用應(yīng)用程序緩存的應(yīng)用程序時(shí)顯示通知欄。通知欄顯示一條消息,例如:

本網(wǎng)站(www.example.com)要求將數(shù)據(jù)存儲(chǔ)在您的計(jì)算機(jī)上供脫機(jī)使用?,F(xiàn)在不允許

術(shù)語(yǔ)“脫機(jī)(啟用)應(yīng)用程序”有時(shí)專指用戶已允許使用脫機(jī)功能的應(yīng)用程序。

加載文件

使用應(yīng)用程序緩存修改了加載文檔的正常過(guò)程:

  • 如果應(yīng)用程序緩存存在,則瀏覽器直接從緩存中加載文檔及其關(guān)聯(lián)資源,而不訪問(wèn)網(wǎng)絡(luò)。這加快了文檔加載時(shí)間。

  • 然后瀏覽器檢查是否已在服務(wù)器上更新緩存清單。

  • 如果緩存清單已更新,瀏覽器會(huì)下載清單的新版本和清單中列出的資源。這是在后臺(tái)完成的,不會(huì)顯著影響性能。

下面更詳細(xì)地指定加載文檔和更新應(yīng)用程序緩存的過(guò)程:

  1. 當(dāng)瀏覽器訪問(wèn)包含manifest屬性的文檔時(shí),如果沒有應(yīng)用程序緩存存在,瀏覽器將加載文檔,然后獲取清單文件中列出的所有條目,從而創(chuàng)建應(yīng)用程序緩存的第一個(gè)版本。

  2. 對(duì)該文檔的后續(xù)訪問(wèn)會(huì)導(dǎo)致瀏覽器從應(yīng)用程序緩存(而不是從服務(wù)器)加載清單文件中指定的文檔和其他資產(chǎn)。另外,瀏覽器還會(huì)向?qū)ο蟀l(fā)送一個(gè)checking事件window.applicationCache,并根據(jù)適當(dāng)?shù)腍TTP緩存規(guī)則獲取清單文件。

  3. 如果清單的當(dāng)前緩存副本是最新的,則瀏覽器noupdate向該applicationCache對(duì)象發(fā)送一個(gè)事件,并且更新過(guò)程完成。請(qǐng)注意,如果您更改服務(wù)器上的任何緩存資源,則還必須更改清單文件本身,以便瀏覽器知道它需要再次獲取所有資源。

  4. 如果清單文件更改,則清單中列出的所有文件(以及通過(guò)調(diào)用添加到高速緩存的文件applicationCache.add())都會(huì)根據(jù)相應(yīng)的HTTP高速緩存規(guī)則提取到臨時(shí)高速緩存中。對(duì)于每個(gè)獲取到該臨時(shí)緩存中的文件,瀏覽器都會(huì)progress向該applicationCache對(duì)象發(fā)送一個(gè)事件。如果發(fā)生任何錯(cuò)誤,瀏覽器將發(fā)送一個(gè)error事件,并停止更新。

  5. 一旦成功檢索到所有文件,它們就會(huì)自動(dòng)移入真正的脫機(jī)緩存中,并將cached事件發(fā)送到applicationCache對(duì)象。由于文檔已經(jīng)從緩存中加載到瀏覽器中,所以在文檔重新加載(手動(dòng)或編程)之前,更新的文檔將不會(huì)被渲染。

存儲(chǔ)位置并清除脫機(jī)緩存

在Chrome中,您可以通過(guò)在首選項(xiàng)中選擇“清除瀏覽數(shù)據(jù)...”或通過(guò)訪問(wèn)chrome://appcache-internals/來(lái)清除脫機(jī)緩存。Safari在其偏好設(shè)置中有類似的“空緩存”設(shè)置,但也可能需要重啟瀏覽器。

在Firefox中,脫機(jī)緩存數(shù)據(jù)與Firefox配置文件分開存儲(chǔ) - 位于常規(guī)磁盤緩存旁邊:

  • Windows Vista/7: C:\Users\<username>\AppData\Local\Mozilla\Firefox\Profiles\<salt>.<profile name>\OfflineCache

  • Mac/Linux: /Users/<username>/Library/Caches/Firefox/Profiles/<salt>.<profile name>/OfflineCache

在Firefox中,可以在about:cache頁(yè)面上檢查脫機(jī)緩存的當(dāng)前狀態(tài)(在“脫機(jī)緩存設(shè)備”標(biāo)題下)??梢允褂霉ぞ?- >選項(xiàng) - >高級(jí) - >網(wǎng)絡(luò) - >離線數(shù)據(jù)中的“刪除...”按鈕單獨(dú)清除每個(gè)站點(diǎn)的脫機(jī)緩存。

在Firefox 11之前,無(wú)論是工具 - >清除最近的歷史記錄,還是工具 - >選項(xiàng) - >高級(jí) - >網(wǎng)絡(luò) - >離線數(shù)據(jù) - >立即清除,都會(huì)清除離線緩存。這已被修復(fù)。

在Linux上,您可以在編輯>首選項(xiàng)>高級(jí)>網(wǎng)絡(luò)>離線Web內(nèi)容和用戶數(shù)據(jù)中找到該設(shè)置

另請(qǐng)參閱清除DOM存儲(chǔ)數(shù)據(jù)。

應(yīng)用程序緩存也可能過(guò)時(shí)。如果從服務(wù)器中刪除應(yīng)用程序的清單文件,瀏覽器將刪除使用該清單的所有應(yīng)用程序緩存,并向該applicationCache對(duì)象發(fā)送“已廢棄”事件。這將應(yīng)用程序緩存的狀態(tài)設(shè)置為OBSOLETE。

緩存清單文件

引用緩存清單文件

manifestWeb應(yīng)用程序中的屬性可以指定緩存清單文件的相對(duì)路徑或絕對(duì)URL。(絕對(duì)URL必須來(lái)自與應(yīng)用程序相同的來(lái)源)。緩存清單文件可以具有任何文件擴(kuò)展名,但它必須以MIME類型提供text/cache-manifest。

注意:在Apache服務(wù)器上,清單(.appcache)文件的MIME類型可以通過(guò)添加AddType text/cache-manifest .appcache到根目錄或與應(yīng)用程序相同的目錄中的.htaccess文件來(lái)設(shè)置。

緩存清單文件中的條目

緩存清單文件是一個(gè)簡(jiǎn)單的文本文件,列出了瀏覽器為了離線訪問(wèn)而緩存的資源。資源由URI標(biāo)識(shí)。緩存清單中列出的條目必須與清單具有相同的方案,主機(jī)和端口。

例1:一個(gè)簡(jiǎn)單的緩存清單文件

以下是一個(gè)簡(jiǎn)單的緩存清單文件example.appcache,適用于www.example.com上的虛擬網(wǎng)站。

CACHE MANIFEST
# v1 - 2011-08-13# This is a comment.http://www.example.com/index.html
http://www.example.com/header.png
http://www.example.com/blah/blah

緩存清單文件可以包括三個(gè)部分(CACHE,NETWORK,和FALLBACK,在下面討論)。在上面的示例中,沒有節(jié)頭,因此假定所有數(shù)據(jù)行都位于explicit(CACHE)節(jié)中,這意味著瀏覽器應(yīng)將所有列出的資源緩存在應(yīng)用程序緩存中。資源可以使用絕對(duì)或相對(duì)URL(例如,index.html)指定。

上例中的“v1”注釋有一個(gè)很好的理由。清單文件更改時(shí),瀏覽器僅更新應(yīng)用程序緩存,字節(jié)為字節(jié)。如果更改緩存的資源(例如,header.png用新內(nèi)容更新映像),則還必須更改清單文件的內(nèi)容,以便讓瀏覽器知道他們需要刷新緩存。您可以對(duì)清單文件進(jìn)行任何更改,但建議最佳做法是修改版本號(hào)。

重要提示:不要在緩存清單文件中指定清單本身,否則幾乎不可能通知瀏覽器新的清單可用。

在緩存清單文件的部分:CACHENETWORK,和FALLBACK

清單可以有三個(gè)不同的部分:CACHE,NETWORK,和FALLBACK。

CACHE:這是緩存清單文件中條目的默認(rèn)部分。在CACHE:部分標(biāo)題下(或直接在該CACHE MANIFEST行后面)列出的文件在第一次下載后被顯式緩存。緩存清單文件中NETWORK:NETWORK:部分標(biāo)題下列出的文件是需要連接到服務(wù)器的白名單資源。即使用戶處于離線狀態(tài),對(duì)這些資源的所有請(qǐng)求都會(huì)繞過(guò)緩存。通配符*可以使用一次。大多數(shù)網(wǎng)站需要*。FALLBACK:FALLBACK:部分指定瀏覽器在資源不可訪問(wèn)時(shí)應(yīng)使用的備用頁(yè)面。本節(jié)中的每個(gè)條目都列出了兩個(gè)URI--第一個(gè)是資源,第二個(gè)是后備。這兩個(gè)URI必須是相對(duì)的,并且來(lái)自清單文件的相同來(lái)源。可以使用通配符。

CACHENETWORKFALLBACK部分可以在高速緩存中的清單文件的任何順序排列,并且各部分可以在單一清單中出現(xiàn)一次以上。

示例2:更完整的緩存清單文件

以下是www.example.com上虛構(gòu)網(wǎng)站的更完整的緩存清單文件:

CACHE MANIFEST
# v1 2011-08-14# This is another comment
index.html
cache.html
style.css
image1.png

# Use from network if available
NETWORK:network.html

# Fallback content
FALLBACK:. fallback.html

本例使用NETWORKFALLBACK部分指定的network.html頁(yè)面必須始終從網(wǎng)絡(luò)檢索,并且該fallback.html頁(yè)面應(yīng)該充當(dāng)后備資源(例如,在情況下與服務(wù)器的連接不能建立)。

緩存清單文件的結(jié)構(gòu)

緩存清單文件必須以text/cache-manifestMIME類型提供。使用此MIME類型提供的所有資源必須遵循本節(jié)中定義的應(yīng)用程序緩存清單的語(yǔ)法。

高速緩存清單是UTF-8格式的文本文件,可以選擇包含BOM字符。換行符可以由換行符(U+000A),回車符(U+000D)或回車符和換行符來(lái)表示。

緩存清單的第一行必須包含字符串CACHE MANIFESTU+0020兩個(gè)單詞之間有一個(gè)空格),后跟零個(gè)或多個(gè)空格或制表符。該行上的任何其他文本都將被忽略。

緩存清單的其余部分必須包含零個(gè)或多個(gè)以下行:

空白行您可以使用由零個(gè)或多個(gè)空格和制表符組成的characters.CommentComments包含零個(gè)或多個(gè)制表符或空格,后跟單個(gè)#字符,后跟零個(gè)或多個(gè)注釋文本字符。注釋只能用于他們自己的行(在第一CACHE MANIFEST行之后),不能附加到其他行。這意味著您無(wú)法指定片段標(biāo)識(shí)符。部分headerSection標(biāo)頭指定正在處理緩存清單的哪一部分。有三種可能的部分標(biāo)題:

節(jié)標(biāo)題說(shuō)明`CACHE:`切換到緩存清單的顯式部分(這是默認(rèn)部分)。`NETWORK:`切換到緩存清單的在線白名單部分。`FALLBACK:`切換到緩存清單的后備部分。

部分標(biāo)題行可能包含空格,但必須:在部分名稱中包含冒號(hào) (:)。部分?jǐn)?shù)據(jù)數(shù)據(jù)行的格式因部分而異。在explicit(CACHE:)部分中,每行都是要緩存的資源的有效URI或IRI引用(本節(jié)中不允許使用通配符)。在每行的URI或IRI之前和之后允許使用空格。在Fallback部分中,每一行都是對(duì)資源的有效URI或IRI引用,隨后是在無(wú)法與服務(wù)器建立連接時(shí)要提供的后備資源。在網(wǎng)絡(luò)部分,每一行都是一個(gè)有效的URI或IRI引用,用于從網(wǎng)絡(luò)中獲取資源(或者*可以在本節(jié)中使用通配符)。

注意:相對(duì)URI與緩存清單的URI相關(guān),而不是引用清單的文檔的URI。

高速緩存清單文件可以隨意從節(jié)段切換到節(jié)段(每節(jié)段標(biāo)題可以多次使用),并且節(jié)段允許為空。

應(yīng)用程序緩存中的資源

應(yīng)用程序緩存始終包含至少一個(gè)由URI標(biāo)識(shí)的資源。所有資源都適用于以下類別之一:

主條目這些是添加到緩存的資源,因?yàn)橛脩粼L問(wèn)的瀏覽上下文包含一個(gè)文檔,該文檔使用其manifest屬性指示它位于此緩存中。隱式條目這些是在應(yīng)用程序的緩存清單文件中明確列出的資源。網(wǎng)絡(luò)條目這些是應(yīng)用程序的緩存清單文件作為網(wǎng)絡(luò)條目?;赝藯l目這些是在應(yīng)用程序的緩存清單文件中列為備用條目的資源。

注意:資源可以使用多個(gè)類別進(jìn)行標(biāo)記,因此可以分類為多個(gè)條目。例如,一個(gè)條目既可以是顯式條目又可以是后備條目。

下面將更詳細(xì)地描述資源類別。

主條目

主條目是manifest在其<html>元素中包含屬性的任何HTML文件。例如,假設(shè)我們有HTML文件http://www.example.com/entry.html,它看起來(lái)像這樣:

<html manifest="example.appcache">  <h1>Application Cache Example</h1></html>

如果entry.html未在example.appcache緩存清單文件中列出,則訪問(wèn)該entry.html頁(yè)面會(huì)導(dǎo)致entry.html作為主條目添加到應(yīng)用程序緩存中。

顯式條目

顯式條目是在CACHE緩存清單文件的部分中明確列出的資源。

網(wǎng)絡(luò)條目

NETWORK緩存清單文件的部分指定了Web應(yīng)用程序需要聯(lián)機(jī)訪問(wèn)的資源。應(yīng)用程序緩存中的網(wǎng)絡(luò)條目本質(zhì)上是“在線白名單” - 該NETWORK節(jié)中指定的URI 從服務(wù)器而不是緩存中加載。這可以讓瀏覽器的安全模型通過(guò)限制對(duì)已批準(zhǔn)資源的訪問(wèn)來(lái)保護(hù)用戶免受潛在的安全漏洞攻擊。

作為示例,您可以使用網(wǎng)絡(luò)條目從服務(wù)器(而不是緩存)加載和執(zhí)行腳本和其他代碼:

CACHE MANIFEST
NETWORK:/api

上面列出的緩存清單部分確保加載http://www.example.com/api/子樹中包含的資源的請(qǐng)求始終訪問(wèn)網(wǎng)絡(luò),而不嘗試訪問(wèn)緩存。

注意:從清單文件中簡(jiǎn)單省略主條目(manifesthtml元素中設(shè)置了屬性的文件)將不會(huì)有相同的結(jié)果,因?yàn)橹鳁l目將被添加到應(yīng)用程序緩存中,并隨后從該應(yīng)用程序緩存中提供。

后備條目

當(dāng)嘗試加載資源失敗時(shí)使用回退條目。例如,假設(shè)緩存清單文件http://www.example.com/example.appcache包含以下內(nèi)容:

CACHE MANIFEST
FALLBACK:example/bar/ example.html

對(duì)其http://www.example.com/example/bar/或其任何子目錄及其內(nèi)容的任何請(qǐng)求都會(huì)導(dǎo)致瀏覽器發(fā)出網(wǎng)絡(luò)請(qǐng)求以嘗試加載所請(qǐng)求的資源。如果嘗試失敗,由于網(wǎng)絡(luò)故障或某種服務(wù)器錯(cuò)誤,瀏覽器會(huì)加載example.html文件。

緩存狀態(tài)

每個(gè)應(yīng)用程序緩存都有一個(gè)狀態(tài),用于指示緩存的當(dāng)前狀態(tài)。共享相同清單URI的緩存共享相同的緩存狀態(tài),可以是以下之一:

UNCACHED指示應(yīng)用程序緩存對(duì)象未完全初始化的特殊值。IDLE應(yīng)用程序緩存當(dāng)前未處于更新過(guò)程中。CHECKING清單正在提取并檢查更新。DOWNLOADING由于資源清單發(fā)生變化,正在下載資源以添加到緩存中。UPDATEREADY有一個(gè)新版本的應(yīng)用程序緩存可用。有一個(gè)相應(yīng)的updateready事件,cached當(dāng)一個(gè)新的更新被下載但尚未使用該swapCache()方法激活時(shí),將被觸發(fā)而不是事件。OBSOLETE應(yīng)用程序緩存組現(xiàn)在已經(jīng)過(guò)時(shí)。

測(cè)試緩存清單的更新

您可以使用JavaScript以編程方式測(cè)試以查看應(yīng)用程序是否具有更新的緩存清單文件。由于緩存清單文件在腳本附加事件偵聽器以測(cè)試更新之前可能已更新,因此腳本應(yīng)始終測(cè)試window.applicationCache.status。

function onUpdateReady() {
  console.log('found new version!');}window.applicationCache.addEventListener('updateready', onUpdateReady);if(window.applicationCache.status === window.applicationCache.UPDATEREADY) {  onUpdateReady();}

要手動(dòng)開始測(cè)試新清單文件,可以使用window.applicationCache.update()

陷阱

  • 永遠(yuǎn)不要使用傳統(tǒng)的GET參數(shù)來(lái)訪問(wèn)緩存的文件(如other-cached-page.html?parameterName=value)。這將使瀏覽器繞過(guò)緩存并嘗試從網(wǎng)絡(luò)獲取它。要鏈接到具有JavaScript解析參數(shù)的緩存資源,請(qǐng)?jiān)阪溄拥纳⒘胁糠质褂脜?shù),例如other-cached-page.html#whatever?parameterName=value。

  • 當(dāng)緩存應(yīng)用程序時(shí),僅更新網(wǎng)頁(yè)中使用的資源(文件)不足以更新已緩存的文件。您必須在瀏覽器檢索并使用更新的文件之前更新緩存清單文件本身。window.applicationCache.swapCache()盡管已經(jīng)加載的資源不會(huì)受到影響,但您可以通過(guò)編程方式使用此功能。為了確保從新版本的應(yīng)用程序緩存中加載資源,刷新頁(yè)面非常理想。

  • 在您的Web服務(wù)器上設(shè)置過(guò)期標(biāo)題*.appcache以便立即過(guò)期的文件是個(gè)好主意。這樣可以避免緩存清單文件的風(fēng)險(xiǎn)。例如,在Apache中,您可以指定如下配置: ExpiresByType text/cache-manifest "access plus 0 seconds"

瀏覽器兼容性

Feature

Chrome

Edge

Firefox (Gecko)

Internet Explorer

Opera

Safari

Basic support

4.0

(Yes)

3.5 (1.9.1)1

10.0

10.6

4.0

Feature

Android

Edge

Firefox Mobile (Gecko)

Firefox OS

IE Mobile

Opera Mobile

Safari Mobile

Basic support

2.1

(Yes)

(Yes)

1.0.12

11.03

11.0

3.2

上一篇: 下一篇: