html 5 (manifest )離線緩存使用以及坑

項目需求,當網絡缺失時,使用html5 離線緩存技術,展示某個頁面。(應用程序緩存Application Cache)

html5離線緩存是通過創建cache manifest 文件,輕鬆創建web應用的離線版本。

剛開始使用的時候好些坑,因爲沒有很詳細的文檔或者資料,只能一點點的測試和開發;

使用步驟和遇到的坑如下:

1,新建一個以.appcache 爲後綴的文件,這個文件最好和你需要緩存的html頁面目錄一致,內容如下

CACHE MANIFEST
#chrome瀏覽器支持,火狐瀏覽器支持度不夠好
#version 1
#author by guoquanyou

#CACHE 其後列出的是需要緩存的內容
CACHE:
404.html

# NETWORK 其後列出的是不進行緩存的內容,每次都需要從服務器端獲取
NETWORK:
*
#離線狀況下代替文件 fallback 是如果無法建立因特網連接時加載的頁面
FALLBACK:
indexcode.html 404.html

2,在html文件html標籤中添加一行manifest="cache.appcache",告訴瀏覽器要加載的內容。

<!DOCTYPE html>
<html manifest="index.appcache">
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
</body>
</html>

3,如何更新緩存

  •  用戶清空瀏覽器緩存
  •  修改manifest文件
  • 由程序來更新應用緩存

在修改manifest 文件之後,就可以更新緩存了,但是這個只是更新,當前訪問的頁面或者文件還是取的已經緩存中的數據,下一次訪問的時候纔可以看到最新的代碼。

我們可以使用代碼刷新:

window.addEventListener('load', function(e) {
          window.applicationCache.addEventListener('updateready', function(e) {
            if (window.applicationCache.status === window.applicationCache.UPDATEREADY) {
              window.applicationCache.swapCache()
              window.location.reload()
            } else {
              // Manifest didn’t changed. Nothing new to server.
            }
          }, false)
        }, false)
監控到manifest 刷新之後,刷新緩存,並實時調用最新代碼。


4,部分文件緩存不下來

我在緩存項目中使用緩存,現在本地調試代碼,但是發現其中有一個文件是https://****.js一直緩存不下啦,

大概原因是http協議和https協議證書之間的一個問題,

就是http://localhost 不能緩存https的文件,可以使用gitHub 查看demo是可以緩存的

https://qinyuhua.github.io/jQueryCode/main.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章