支持離線Web應用開發是HTML5的一個重點。離線Web應用就是在設備不能上網的時候仍然能夠運行的應用。開發離線Web應用須要幾個步驟,其中一個就是離線下必須能訪問必定的資源(圖像 JS css等)css
HTML5引入了應用程序緩存,這意味着 web 應用可進行緩存,並可在離線時進行訪問。html
📌應用程序緩存爲應用帶來三個優點:web
<html manifest="test.manifest">
時,會發出一個請求,請求獲取 test.manifest
文件 ,若是是第一次訪問,那麼瀏覽器就會根據 描述文件(manifest 文件)中(CACHE MANIFEST)的內容下載相應的資源而且進行離線存儲。若是已經訪問過而且資源已經離線存儲了,那麼瀏覽器就會使用離線的資源加載頁面,而後瀏覽器會對比新的 manifest
文件與舊的 manifest
文件,若是文件沒有發生改變,就不作任何操做,若是文件改變了,那麼就會從新下載文件中的資源並進行離線存儲。要想在緩存中保存數據,須要使用描述文件manifest 文件,列出要下載和緩存的資源express
manifest 文件可分爲三個部分:npm
🚩 【注意】 全部的你想讓瀏覽器緩存的資源放在public靜態資源文件夾中json
npm init //生成package.json說明書文件 npm i express //安裝express包 npm i --save art-template express-art-template //使用art-tmplate // 入口文件app.js var express = require("express"); var app = express(); app.use('/public/', express.static('./public/')) app.engine('html', require('express-art-template')); app.get('/', function (req, res) { res.render('index.html'); }); app.listen(3000, function () { console.log("app is running at port 3000."); });
offline.appcache描述文件瀏覽器
CACHE MANIFEST #v01 /public/image/01.jpg //緩存第一張圖片 NETWORK: * FALLBACK: /
index.html緩存
<!DOCTYPE html> <html lang="en" manifest="../public/offline.appcache"> <head> <meta charset="UTF-8"> <title>HTML5離線存儲</title> <link rel="stylesheet" href="../public/index.css"> </head> <body> <img src="../public/image/01.jpg" alt=""> <img src="../public/image/02.jpg" alt=""> </body> </html>
開啓服務端後:
服務器
關閉服務端後:
cookie
改變manifest
後 再次鏈接服務器
CACHE MANIFEST #v01 /public/image/01.jpg /public/index.css NETWORK: * FALLBACK: /
🚩 【注】看圖右邊控制端的輸出,由於改變了manifest文件,瀏覽器會對比新的 manifest 文件與舊的 manifest 文件,發現文件改變了,那麼就會從新下載文件中的資源並進行離線存儲
再次關閉服務端後: