婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > HTML5實現應用程序緩存(Application Cache)

HTML5實現應用程序緩存(Application Cache)

熱門標簽:平涼地圖標注位置怎么弄 電話機器人電銷系統掙話費 拓展地圖標注 南昌仁和怎么申請開通400電話 機器人外呼系統存在哪些能力 電話機器人黑斑馬免費 如何獲取地圖標注客戶 高德地圖標注地點糾錯 只辦理400電話

為什么要使用Application Cache技術?

在HTML5之前,我們需要接入網絡才能訪問,這毫無疑問是網站多次請求服務器,造成速度變慢,對于PC用戶,網絡相對比較穩定,載入速度也不會差太多。但是移動端呢?移動端依賴無線信號、依賴信號塔、位置不固定、受附近建筑影響等。一系列導致網絡的不穩定,我們不能改變用戶,也不能放棄網絡較慢的用戶。
還有,在混合app領域,經常使用內置webview加載html頁面,如果網速太慢,依然會造成上述問題。

離線存儲技術

實際開發中,主要是使用Application Cache和LocalStorage技術,它們來自HTML5技術。

(1)Application Cache:通常用于靜態資源(靜態頁面)的緩存。
(2)LocalStorage:通常用于AJAX請求緩存,存儲非關鍵性AJAX數據。

我用一段話來贅述下為什么要使用Application Cache技術:
當頁面有些元素它們是不變的,你可以使用Application Cache技術離線緩存掉,每次訪問這些緩存掉的元素就不需要再請求服務器了,當有些東西經常變,那就讓它們每次請求服務器吧!

HTML5 Application Cache特性

HTML5 引入了應用程序緩存,這意味著 web 應用可進行緩存,并可在沒有因特網連接時進行訪問。
應用程序緩存為應用帶來三個優勢:
(1)離線瀏覽:用戶可在不介入網絡時訪問使用
(2)速度提升:已緩存資源加載得更快
(3)減少對服務器的請求:瀏覽器將只從服務器下載更新過或更改過的資源
支持情況:除了IE瀏覽器,都支持Application Cache

開始使用Application Cache

涉及角色:服務器和html文件

服務器端需要做的事情

管理維護manifest.appcache文件,檢查manifest清單中是否有無法訪問的文件,并及時更新,以免造成損失。

manifest文件(W3C建議文件擴展名為.appcache)
manifest 文件是簡單的文本文件,它告知瀏覽器被緩存的內容(以及不緩存的內容)。

manifest 文件可分為三個部分:

  • CACHE MANIFEST - 在此標題下列出的文件將在首次下載后進行緩存
  • NETWORK - 在此標題下列出的文件需要與服務器的連接,且不會被緩存
  • FALLBACK - 在此標題下列出的文件規定當頁面無法訪問時的回退頁面(比如 404 頁面)

我們梳理一下逐一進行介紹

一、CACHE MANIFEST(它是必須的)

CACHE MANIFEST
/reset.css
/logo.gif
/hx.js

manifest 文件列出了三個資源:一個 CSS 文件,一個 GIF 圖像,以及一個 JavaScript 文件。當 manifest 文件加載后,瀏覽器會從網站的根目錄下載這三個文件。然后,無論用戶何時與因特網斷開連接,這些資源依然是可用的。
注意:文件位置根據文件在服務器的實際目錄,確保路徑正確。
總結:CACHE MANIFEST列出的資源是需要在本地緩存的文件(要緩存的文件)

二、NETWORK

NETWORK:
nav.html

NETWORK 小節規定文件 “nav.html” 永遠不會被緩存,且離線時不可用。

NETWORK:
*

也可以使用星號“ * ”來指示所有其他資源/文件都需要因特網連接。
注意:千萬不要把首頁index放入NETWORK中禁止緩存,否則插件等無法使用。
總結:NETWORD列出的資源是需要每次請求的動態資源文件(不緩存的文件)

三、FALLBACK

FALLBACK:
/index/ /404.html

FALLBACK 小節規定如果無法建立因特網連接,則用 “404.html” 替代 /index/ 目錄中的所有文件。
注意:第一個 URI 是資源,第二個是替補。
總結:FALLBACK列出的資源是如果某個文件無法聯網或接入失敗,則使用后一個替補顯示。(友好的替補頁面)

完整的manifest文件

CACHE MANIFEST
# Files that need to be cached2014.6.5
/reset.css
/logo.gif
/hx.js

NETWORK:
#Files that do not need caching2014.6.5
nav.html

FALLBACK:
#Files to be replaced2014.6.5
/index/ /404.html

注意:#代表注釋行,看似簡單的注釋行卻有著很大的用處,為什么這么說呢,因為應用的緩存會在其 manifest 文件更改時被更新。如果您編輯了一幅圖片,或者修改了一個 JavaScript 函數,這些改變都不會被重新緩存。更新注釋行中的日期和版本號、時間戮或md5碼等,是一種使瀏覽器重新緩存文件的辦法。

html需要做的事情

只需要引入manifest.appcache文件

<!DOCTYPE HTML>
<html manifest="manifest.appcache">

Application Cache生命銷毀規則

(1)用戶清空瀏覽器的緩存,此時Application Cache本地緩存將銷毀。
(2)manifest文件被修改時,因為應用的緩存會在其 manifest 文件更改時被更新。如果您編輯了一幅圖片,或者修改了一個 JavaScript 函數,這些改變都不會被重新緩存,此時Application Cache本地緩存將銷毀。
(3)由程序來更新應用緩存

深入manifest.appcache文件

首先提醒的就是,千萬不要把index首頁禁止緩存,雖然放入NETWORK也不起作用,這是一種規范,也是一種規則,請遵守。

HTTP相關的緩存頭域以及https的緩存頁面限制,將被manifest所無視,所以在用戶代理更新頁面之前,它是不會過期的,也就是說,即使是HTTPS,也可以脫機工作。

各大瀏覽器對應用緩存的容量限制有所不同,幾乎為5MB。

當一個資源被緩存后,該瀏覽器直接請求這個絕對路徑也會訪問緩存中的資源。

緩存包含manifest清單的頁面,所以實際上,即使我們不顯示的把包含manifest的頁面,列在manifest緩存清單中,這個頁面也會被緩存。

每次網站更新,服務器端要進行manifest.appcache文件的檢查和更新,避免造成損失。

站點中的其他頁面即使沒有設置manifest屬性,請求的資源如果在緩存中也從緩存中訪問。

如果manifest文件,或者內部列舉的某一個文件不能正常下載,整個更新過程都將失敗,瀏覽器繼續全部使用老的緩存。

其實,不必明確的列出Application Cache鏈接到的頁面,默認情況下,任何包含html元素manifest屬性的頁面都會緩存,這些自動緩存的頁面稱為主條目,而清單中列出的文件稱為詳細條目,如果某些文件需要在線訪問,可以創建 “ 白名單 ”。像在NETWORK下的條目,這些文件通常稱之為網絡條目,每次聯網,每次都要請求服務器。

第一行CACHE MANIFEST是固定的格式,且必須要寫在第一行,也必須要有,NETWORK和FALLBACK為可選項。

FALLBACK中的資源必須和manifest文件同源。

引用manifest的html必須與manifest文件同源,在同一個域下。

當manifest文件發生改變時,資源請求本身也會觸發更新

注釋不僅僅起到不執行的作用,上述已經詳細解釋了,可以是版本號,時間戳或者md5碼等等。

manifest文件中的cache部分不能使用通配符,必須手動指定,沒有自動化工具。

在開發過程中,通過ajax與WCF進行數據交互時,常常頭一次或頭幾次數據加載成功,以后均加載失敗。

因為啟用的web離線緩存機制,所以每次ajax加載數據時是從本地緩存文件中讀取的,用的是ajax的get模式,因為get模式緩存,所以不會重新向服務器請求數據,導致數據加載失敗。
改成ajax post方式后,數據 never cache,所以每次刷新網站,均會向service請求數據。

報錯: Application Cache Error event: Manifest fetch failed (404)

解決方法:
manifest 文件需要配置正確的 MIME-type,即 “text/cache-manifest”。
manifest 的 contentType = text/cache-manifest,擴展名建議為 .appcache
且必須在 web 服務器上進行配置,不同的服務器配置方法不一樣。

頁面離線,ajax更新。

首先,你可以修改下 manifest 文件來更新這個頁面,但是作為文章內容頁面離線以后,就會存儲在本地了,如果你是一篇章的話,那么這個文章的內容頁就被存下來了,你如果以相同的 url 去訪問,不管你文章里面的數據更新沒有,這個離線下來的頁面都不會更新了 ( 除非你更新manifest 文件 ) 。所以,你所有的動態數據,都得用 ajax 方式去獲取,就像客戶端一樣,離線的頁面應該是一個沒有數據的空殼,然后通過 ajax 去拉去數據填補這個空殼。然后要注意的是,ajax 的請求地址,要寫到manifest 的 network 中。

離線頁面的更新(長尾問題)

網站更新了,如何更新用戶本地的離線頁面呢?
與很多文章中說的一樣,先上線你的文件,然后修改一下頁面中引入的cache.manifest文件即可,比如修改下注釋,修改后,如果再訪問頁面,就會先去校驗manifest 時候有更新,如有更新,再次刷新頁面的時候,頁面就會更新了。
長尾問題(非常重要):
就像前面說到的一樣,如果你的 manifest 文件更新了,你訪問頁面,需要刷新一次,更新的頁面才能 load加載進來,那么這樣就有一個問題,如果你的后端數據,就是給 js ajax 接口的數據變化了,你對應的 js 也修改了。那么你修改 manifest 上線的時候,第一次開頁面,頁面就會出 bug 了。再刷一次頁面,就好了。那么,這個第一次訪問的 bug ,是我們不想看到的。
而且你不能知道用戶什么時候第二次再來訪問你的頁面,所以你的頁面一旦使用 manifest 離線,就像客戶端一樣,這樣就出現了長尾問題。還好, manifest 有一些 js 接口,可以來判斷, load 更新文件。

cache.status屬性返回當前離線應用狀態

  • UNCACHED ( 數值 0) :未啟用離線應用
  • IDLE ( 數值 1) :已開啟離線應用,但本地緩存的資源是最新的,并且未標記為廢棄資源
  • CHECKING ( 數值 2) :當前更新緩存的狀態為 “ 檢查中 ”
  • DOWNLOADING ( 數值 3) :當前更新緩存的狀態為 “ 下載資源中 ”
  • UPDATEREADY ( 數值 4) :當前更新緩存的狀態為 “ 更新完畢 ”
  • OBSOLETE ( 數值 5) :已開啟離線應用,但緩存資源都已標記為廢棄
     

如果文件超出緩存5M的大小,會造成什么。
比如我A頻道維護了自己的Application Cache,B頻道也維護了自己的,這個時候A頻道如果使用達到了一個峰值,會導致B頻道所有的緩存失效。
所以,建議Application Cache存儲公共資源,不要存儲業務資源!

由更新機制來說,首次更新manifest時,因為頁面加載已經開始甚至已經完成,緩存更新尚未完成,瀏覽器仍然會使用過期的資源;瀏覽器是當Application Cache有更新時,該次不會使用新資源,第二次才會使用。這個時候update事件中執行window.reload事件。

window.applicationCache.addEventListener("updateready", function(){
    window.location.reload()
});

由上例可以知道,緩存的不只是顯示定義的文件,比如上例中的applicationcache/時便會默認保存index.html為映射的數據,并且包含demo.appcache文件,很多時候會遇到一次文件更新線上老是不更新,這個時候隨便在manifest配置文件中做一點修改即可更新。
做一下代碼更改:

<html  manifest="A.appcache">
=>
<html  manifest="B.appcache">

這個時候如果不做A.appcache的更新的話,緩存將不會更新,原因是index.html被緩存了,檢測的仍然是原manifest清單
各個頁面統一管理自己的manifest清單,意思是a頁面配置了common.js,b頁面也配置了common.js,意思是a頁面更新后,
b頁面的manifest不更改的話,b頁面依舊讀取的是老版本的文件,這個有一定道理卻也有一定浪費,需要公共頁面做處理。

到此這篇關于HTML5實現應用程序緩存(Application Cache)的文章就介紹到這了,更多相關HTML5應用程序緩存內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

標簽:青島 永州 漯河 西藏 棗莊 新疆 池州 遼源

巨人網絡通訊聲明:本文標題《HTML5實現應用程序緩存(Application Cache)》,本文關鍵詞  HTML5,實現,應用程序,緩存,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5實現應用程序緩存(Application Cache)》相關的同類信息!
  • 本頁收集關于HTML5實現應用程序緩存(Application Cache)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    91猫先生在线| 首页亚洲欧美制服丝腿| 国产午夜精品久久| 亚洲成人三级小说| 大美女一区二区三区| 欧美日韩中字一区| 中文字幕佐山爱一区二区免费| 性感美女久久精品| 欧美福利一区二区| 免费高清不卡av| 欧美男生操女生| 日韩主播视频在线| 日韩欧美在线综合网| 图片区小说区国产精品视频| 国产精品久久久久婷婷二区次| 成人国产精品免费观看| 久久国产尿小便嘘嘘尿| 日本伊人精品一区二区三区观看方式| 色94色欧美sute亚洲13| 国产精品综合av一区二区国产馆| 亚洲福利国产精品| 午夜精品久久久久久不卡8050| 蜜桃久久精品一区二区| 一区2区3区在线看| 欧美福利视频导航| 99久久精品情趣| 久久电影网电视剧免费观看| 久久午夜色播影院免费高清| 91麻豆国产福利在线观看| 亚洲高清免费观看| 亚洲欧洲一区二区在线播放| 欧美精品一区二区三区蜜桃| 播五月开心婷婷综合| 久久精品国产99久久6| 综合欧美亚洲日本| 国产午夜亚洲精品午夜鲁丝片| 91久久精品一区二区二区| 国产成人久久精品77777最新版本| 亚洲成人一区二区在线观看| 亚洲电影欧美电影有声小说| 久久女同精品一区二区| 91精品国产高清一区二区三区蜜臀| 久久久国产一区二区三区四区小说 | 国产日韩欧美综合一区| 美脚の诱脚舐め脚责91 | 精品免费国产一区二区三区四区| 精品久久一二三区| 欧美日韩国产区一| 国产一区二区三区久久久 | 久久精品国产一区二区三区免费看| 国产精品对白交换视频| 国产色产综合色产在线视频| 久久久久久久免费视频了| 久久综合九色欧美综合狠狠| 精品国产sm最大网站免费看| 久久久综合九色合综国产精品| 国产亚洲福利社区一区| 久久精品视频一区| 国产精品久久久久影院亚瑟| 国产精品久久久久久久岛一牛影视| 久久久久久9999| 一区二区日韩电影| 久草这里只有精品视频| 菠萝蜜视频在线观看一区| 欧美日韩mp4| 国产日韩精品一区| 喷水一区二区三区| 北岛玲一区二区三区四区| 色婷婷av一区二区三区软件| 欧美大片免费久久精品三p| 中文字幕乱码一区二区免费| 首页国产欧美久久| 欧美性色欧美a在线播放| 久久久不卡影院| 亚洲h精品动漫在线观看| 丰满放荡岳乱妇91ww| 69堂亚洲精品首页| 日韩av中文字幕一区二区| 91啪九色porn原创视频在线观看| 欧美zozo另类异族| 亚洲国产成人高清精品| 色婷婷香蕉在线一区二区| 国产精品欧美极品| 国产在线一区二区综合免费视频| 欧美酷刑日本凌虐凌虐| 亚洲男人的天堂一区二区| 99国产一区二区三精品乱码| 国产精品热久久久久夜色精品三区 | 成人av资源站| 欧美videofree性高清杂交| 亚洲人一二三区| 国产露脸91国语对白| 欧美一区二区三区免费大片| 亚洲制服丝袜av| 欧美精品一区二区三区视频| 国产精品一二三四| √…a在线天堂一区| 欧美日韩久久一区二区| 国产一区91精品张津瑜| 国产精品欧美经典| 欧美一区二区三区免费视频| 国产精品888| 爽爽淫人综合网网站| 欧美激情一区二区三区全黄| 精品福利一二区| 亚洲欧美区自拍先锋| 成人午夜视频福利| 风间由美一区二区av101| 欧美精品v日韩精品v韩国精品v| 黄色日韩网站视频| 成人激情黄色小说| 91久久人澡人人添人人爽欧美| 国产真实乱对白精彩久久| 成人免费看视频| 在线一区二区三区四区五区| 成人av网址在线| www.性欧美| 99精品视频在线播放观看| 国产伦精品一区二区三区视频青涩| 婷婷开心激情综合| 国产精品传媒入口麻豆| 日韩你懂的在线播放| 久久精品夜色噜噜亚洲a∨| 日韩欧美在线影院| 日韩精品在线网站| 欧美午夜精品久久久久久孕妇| 国产一区二区电影| 美女www一区二区| 国产精品电影一区二区三区| 中文字幕第一区二区| 亚洲欧洲精品天堂一级| 国产精品视频看| 精品中文字幕一区二区小辣椒 | 成人av资源站| 在线一区二区视频| 26uuu另类欧美亚洲曰本| 国产性色一区二区| 欧美精品一区二区久久久| 亚洲免费伊人电影| 日韩激情在线观看| 精品一区二区三区香蕉蜜桃| 成人av电影免费在线播放| 色综合久久中文字幕| 欧美综合视频在线观看| 精品999在线播放| 三级不卡在线观看| 另类综合日韩欧美亚洲| 欧洲激情一区二区| 亚洲欧美日韩国产另类专区| 另类小说综合欧美亚洲| 色综合天天综合狠狠| 亚洲一区二区视频| 国产黄色精品视频| 日韩极品在线观看| 久久这里只有精品6| 成人av在线观| 精品亚洲成a人| 国产精品久久久久久久久搜平片| 欧美视频第二页| 亚洲韩国精品一区| 成人av电影在线| 欧美极品美女视频| 成人高清av在线| 自拍偷拍欧美精品| 成人国产一区二区三区精品| 精品一区二区三区影院在线午夜| 337p日本欧洲亚洲大胆色噜噜| 国产激情91久久精品导航| 亚洲日本成人在线观看| 日韩欧美成人一区| 国产成人av电影在线| 亚洲午夜久久久| 国产欧美视频在线观看| 99re热视频这里只精品| 亚洲免费在线播放| 国产尤物一区二区在线| 国产成人免费视频网站高清观看视频 | 在线日韩一区二区| 一区二区三区高清| 中文字幕免费观看一区| 欧美一区二区视频在线观看 | 91黄视频在线观看| 色悠久久久久综合欧美99| 久久精品国产77777蜜臀| 2024国产精品视频| 最新国产成人在线观看| 激情都市一区二区| 成人午夜免费电影| 亚洲色欲色欲www| 北条麻妃国产九九精品视频| 久久久久97国产精华液好用吗| 免费看欧美女人艹b| 久久香蕉国产线看观看99| 午夜精品成人在线| 久久久久99精品国产片| 99久久精品国产导航| 26uuu精品一区二区三区四区在线| 国产福利一区在线| 蜜臀a∨国产成人精品| 奇米在线7777在线精品|