html5緩存技術
A. html5緩存的問題,如何正確設置
html5緩存正確的設置辦法:
1、啟用緩存
設置方法:
<html manifest="example.appcache">
...
</html>
2、設定緩存訪問的范圍,配置到MANIFEST中:
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
B. 什麼是HTML5 APPcache
AppCache 在HTML5 規范中進行定義,通過它可創建離線 Web 應用程序。AppCache 使網頁能夠在本地緩存(或保存)資源,包括圖像、腳本庫和樣式表等。此外,AppCache 還允許使用標準的統一資源標識符 (URI) 表示法從緩存內容中提供 URL。
使用 AppCache 在本地保存資源,你可以通過減少主機伺服器的請求數量來改善網頁性能;此外,你還可以離線訪問緩存的資源。
若要在本地緩存資源,需要執行下列操作:
1. 創建一個清單文件,以指定你要保存的資源。
2. 在要使用緩存資源的每個網頁中引用該清單文件。
C. HTML5什麼是應用程序緩存
什麼是應用程序緩存(Application Cache)?
HTML5 引入了應用程序緩存,這意味著 web 應用可進行緩存,並可在沒有網際網路連接時進行訪問。
應用程序緩存為應用帶來三個優勢:
離線瀏覽 - 用戶可在應用離線時使用它們
速度 - 已緩存資源載入得更快
減少伺服器負載 - 瀏覽器將只從伺服器下載更新過或更改過的資源。
瀏覽器支持
所有主流瀏覽器均支持應用程序緩存,除了 Internet Explorer。
HTML5 Cache Manifest 實例
下面的例子展示了帶有 cache manifest 的 HTML 文檔(供離線瀏覽):
實例
<!DOCTYPE HTML>
<html manifest="demo.appcache">
<body>
The content of the document......
</body>
</html>
D. html5離線緩存,我要做一個圖片上傳功能,在用戶拍完照後如果網路不好就進行緩存,怎麼做
HTML5的離線web應用允許我們在離線時與網站進行交互。這在提高網站的訪問速度和製作一款web離線應用上(如HTML5游戲)有很大的使用價值。
先來了解一下HTML5應用程序緩存和瀏覽器緩存的區別。
(有些)瀏覽器會主動保存自己的緩存文件以加快網站載入速度。但是要實現瀏覽器緩存必須要滿足一個前提,那就是網路必須要保持連接。如果網路沒有連接,即使瀏覽器啟用了對一個站點的緩存,依然無法打開這個站點。只會收到一條錯誤信息。而使用離線web應用,我們可以主動告訴瀏覽器應該從網站伺服器中獲取或緩存哪些文件,並且在網路離線狀態下依然能夠訪問這個網站。
E. html5新增了離線緩存機制這說法對嗎
這個不算是 新增吧。
隨著現代瀏覽器的推動,Flash放棄對移動端的支持,HTML5無疑成為當前Web前端炙手可熱的話題。各大游戲開發商、App開發商紛紛投入人力進行研究和技術儲備。相信不久的將來,HTML5會迎來一個快速發展和普及的春天。那麼,HTML5這個新一代的標准,又給我們帶來哪些緩存機制呢?
HTML5 之離線應用Manifest
我們知道,使用傳統的技術,就算是對站點的資源都實施了比較好的緩存策略,但是在斷網的情況下,是無法訪問的,因為入口的HTML頁面我們一般運維的考慮,不會對其進行緩存。HTML5的Cache Mainifest離線應用特性就能夠幫助我們構建離線也能使用的站點,所有的資源都使用瀏覽器本地緩存,當然前提是要求在聯網的情形下使用過一次站點。
如何實現離線訪問特性
實現的步驟非常簡單,主要3個步驟:
1)在伺服器上添加MIME TYPE支,讓伺服器能夠識別manifest後綴的文件
AddType text/cache-manifest manifest
2)創建一個後綴名為.manifest的文件,把需要緩存的文件按格式寫在裡面,並用注釋行標注版本
CACHE MANIFEST
# 直接緩存的文件
CACHE:
Path/to/cache.js
# version:2012-03-20
3)給 <html> 標簽加 manifest 屬性,並引用manifest文件
具體可以參考:HTML5 緩存: cache manifest
<html manifest=」path/to/name-of.manifest」>
離線應用訪問及更新流程
第一次訪問離線應用的入口頁HTML(引用了manifest文件),正常發送請求,獲取manifest文件並在本地緩存,陸續拉取manifest中的需要緩存的文件
再次訪問時,無法在線離線與否,都會直接從緩存中獲取入口頁HTML和其他緩存的文件進行展示。如果此時在線,瀏覽器會發送請求到伺服器請求manifest文件,並與第一次訪問的副本進行比對,如果發現版本不一致,會陸續發送請求重新拉取入口文件HTML和需要緩存的文件並更新本地緩存副本
之後的訪問重復第2步的行為
離線機制的緩存用途
從Manifest的機制來看,即使我們不是為了創建離線應用,也同樣可以使用這種機制用於緩存文件,可以說是給Web緩存提供多一種可以選擇的途徑。
存在的問題:緩存文件更新控制不靈活
就目前HTML5提供的manifest機制來講,一個頁面只能引用一個manifest頁面,而且一旦發現這個manifest改變了,就會把裡面所有定義的緩存文件全部重新拉取一遍,不管實際上有沒有更新,控制比較不靈活。針對這個問題,也有的同學提出了一些建議,比如把需要緩存的文件分模塊切分到不同manifest中,並分開用HTML引用,再使用強大的iframe嵌入到入口頁面,這樣就當某一個模式需要有更新,不會導致其他模塊的文件也重新拉取一遍。
HTML5 之本地存儲localstorage
HTML5給我們提供本地存儲localstorage特性,嚴格來講,其實已經不算傳統Web緩存的范疇。因為它存儲的地方是跟Web緩存分開的,是瀏覽器重新開辟的一個地方。
localstorage的作用
本地存儲localstorage的作用主要使Web頁面能夠通過瀏覽器提供的set/get介面,存儲一些自定義的信息到本地硬碟,並且在單次訪問或以後的訪問過程中隨時獲取或修改。
Localstorage的使用
Localstorage提供了幾個非常易用的Api,setItem/getItem/removeItem/clear,具體的可以參考:Html5 Step by Step(二) 本地存儲
Localstorage的緩存用途
Localstorage設計的本意可能是用來存儲一些用戶操作的個性化設置的文本類型的信息和數據,當我們其實也可能拿來當Web緩存區使用,比如我們可以將Base64格式編碼的圖片信息,存在localstorage中,再次訪問時,直接本地獲取後,使用Css3的Data:image的方式直接展現出來。
存在的問題:大小限制
按照目前標准,目前瀏覽器只給每個獨立的域名提供5m的存儲空間,當存儲超過5m,瀏覽器就會彈出警告框。
可以說,HTML5的Manifest和localstorage是給我們在考慮Web緩存的時候提供了多一種思路,當你開發的應用只面對現代瀏覽器的時候,不妨可以考慮一下
F. HTML5應用程序緩存和HTML瀏覽器緩存有什麼區別
新的HTML5規范允許瀏覽器在連接客戶端時預取一些或全部網站資產,如HTML文件、圖像、CSS、JavaScript等。對於獲取此內容,用戶以前沒有必要訪問此內容。換句話說,應用程序緩存可以預取完全未被訪問的頁面,從而在常規瀏覽器緩存中不可用。預取文件可以加速站點的性能,盡管您最初使用帶寬下載這些文件。
G. HTML5 視頻的緩存
寫法:<html manifest="/CacheFile/myApp.appcache">
myApp.appcache裡面寫了需要緩存的css、js的路徑。
第一次打開頁面是正常的,然後刷新頁面,按說是去拿緩存的文件的,結果谷歌瀏覽器提示如下:
不知道為何,頁面也顯示不了css和js效果?
二、緩存打文件,比如視頻,大概有80M。
需要在第一次打開頁面的時候,視頻一邊播放,一邊下載到客戶端的指定位置。
斷網的時候,直接去讀取下載的位置的視頻。
H. 怎麼學習html5裡面的離線緩存
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
HTML5離線存儲和本地緩存
一.離線存儲
有一個web應用有三個文件index.html,a.js,b.css,現在需要把js和css文件緩存起來
1.在index.html里加上<html manifest="test.manifest">
2.manifest清單格式如下
CACHE MANIFEST
#上面一句必須
#v1.0.0
#需要緩存的文件
CACHE:
a.js
b.css
#不需要緩存的文件
NETWORK:
*
#無法訪問頁面
FALLBACK:
404.html
3.manifest文件的mime-type必須是 text/cache-manifest類型
注意點:
1.對於每個index.html?id=1或index.html?id=2都會分別緩存index.html頁面,可以通過chrome瀏覽器Resources/Application Cache觀察
2.如果想更新緩存內容,只要修改下manifest文件即可,如改版本號v1.0.1
4.離線存儲如果資源有更新,可以通過如下代碼來監聽,但第一次載入還會是原來的版本
window.applicationCache.addEventListener('updateready',function(e){
if(window.applicationCache.status == window.applicationCache.UPDATEREADY){
window.applicationCache.swapCache();
if(confirm("loding new?")){
window.location.reload()
}
}
},false)
二.本地緩存
localStorage.setItem("key","value")
localStorage.getItem("key","value")
localStorage.removeItem("key")
localStorage.clear()
1.本地存儲永不過期,除非自己去清除
2.可以通過chrome瀏覽器Resources/Local Storage來查看
3.不同域下就算key相同取不到的值也不同,如localhost和127.0.0.1