麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > HTML > 正文

HTML5離線應用與客戶端存儲的實現

2024-08-26 00:20:40
字體:
來源:轉載
供稿:網友

支持離線 Web 應用開發是 HTML5 的另一個重點。所謂離線 Web 應用,就是在設備不能上網的情況下仍然可以運行的應用。

開發離線Web 應用需要幾個步驟。首先是確保應用知道設備是否能上網,以便下一步執行正確的操作。然后,應用還必須能訪問一定的資源(圖像、Javascript、CSS等),只有這樣才能正常工作。最好,必須有一塊本地空間用戶保存數據,無論能否上網都不妨礙讀寫。

HTML5 及其相關的 API讓開發離線應用成為現實。

離線檢測

要知道設備是否在線還是離線,HTML5 定義了一個 navigator.onLine 屬性,這個屬性值為 true 表示設備能上網,值為 false 表示設備離線。

if (navigator.onLine) {    // 正常工作} else {    // 執行離線狀態時的任務}

由于 navigator.onLine 存在一定的兼容性問題,因此除了 navigator.onLine 屬性之外,為了更好地確定網絡是否可用,HTML5 還定義了兩個事件 online 和 offline。

當網絡在離線和在線之間切換時在 window 對象上觸發這兩個事件:

window.addEventListener('online', function() {    // 正常工作});window.addEventListener('offline', function() {    // 執行離線狀態時的任務});

在實際應用中,最好在頁面加載后,最好先通過 navigator.onLine 取得初始的狀態。然后通過上述兩個事件來確定網絡連接狀態是否變化。當上述事件觸發時,navigator.onLine 屬性的值也會改變,不過必須要手工輪詢這個屬性才能檢測到網絡狀態的變化。

應用緩存

HTML5 的應用緩存(application cache),或者簡稱為 appcache,是專門為開發離線 Web 應用而設計的。Appcache 就是從瀏覽器的緩存中分出來的一塊緩存區。要想在這個緩存中保存數據,可以使用一個描述文件(manifest file),列出要下載和緩存的資源。描述文件示例:

CACHE MANIFEST# Commentfile.jsfile.css

然后在 html 中引用:

<html manifest="./xxx.manifest">

xxx.manifest 文件的 MIME 類型必須是 text/cache-manifest。

該 API 的核心是 applicationCache 對象,這個對象有一個 status 屬性,屬性的值是常量,表示應用緩存的如下當前狀態:

  • 0: 無緩存,即沒有與頁面相關的應用緩存
  • 1: 閑置,即應用緩存未得到更新
  • 2: 檢查中,即正在下載描述文件并檢查更新
  • 3: 下載中,即應用緩存正在下載描述文件中指定的資源
  • 4: 更新完成,即應用緩存已經更新了資源,而且所有資源都已下載完畢,可以通過 swapCache() 來使用了
  • 5: 廢棄,即應用緩存的描述文件已經不存在了,因此頁面無法再訪問應用緩存

相關事件:

  • checking: 在瀏覽器為應用緩存查找更新時觸發
  • error: 在檢查更新或者下載資源期間發生錯誤時觸發
  • noupdate: 在檢查描述文件發現文件無變化時觸發
  • downloading: 在開始下載應用緩存資源時觸發
  • progress: 在文件下載應用緩存的過程中持續不斷地觸發
  • updateready: 在頁面新的應用緩存下載完畢且可以通過 swapCache() 使用時觸發
  • cached: 在應用緩存完整可用時觸發

一般來講,這些事件會隨著頁面加載按上述順序依次觸發。也可以通過調用 update() 方法手動觸發上述事件。

數據存儲

Cookie

HTTP Cookie,通常直接叫做 cookie,是在客戶端用于存儲會話信息的。該標準要求服務器對任意 HTTP 請求發送 Set-Cookie HTTP 頭信息作為響應的一部分,其中包含會話信息。服務器響應頭示例:

HTTP/1.1 200 OK
Content-type: text/html
Set-Cookie: name=value
Other-header: other-header-value

然后瀏覽器 Set-Cookie 的會話信息,之后為每個請求添加 Cookie HTTP 頭將信息發送回服務器,如下所示:

GET /index.html HTTP/1.1
Cookie: name=value
Other-header: other-header-value

發送回服務器的額外信息可以用于唯一驗證客戶來自于發送的哪個請求。

完整的 cookie 包括:

  1. 名稱: 一個唯一確定 cookie 的名稱。必須被 URL 編碼。
  2. 值: 存儲在 cookie 中的字符串值。必須被 URL 編碼。
  3. 域: cookie 對于哪個域是有效的。
  4. 路徑: 對于指定域中的那個路徑,應該向服務器發送 cookie。
  5. 失效時間: 表示 cookie 何時應該被刪除的時間戳。
  6. 安全標志: 指定后,cookie 只有在使用 SSL 連接的時候才發送到服務器。

 

復制代碼
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产呻吟 | av日韩在线免费观看 | 免费国产a | 一区二区三区欧洲 | 一级在线免费观看视频 | 麻豆视频在线观看免费网站 | 欧美福利视频一区二区 | 午色影院 | 国产精品久久久久久久久久三级 | 久久精品一区二区三 | 香蕉国产9 | 成年免费观看视频 | 成人黄色小视频在线观看 | 亚洲精品欧美二区三区中文字幕 | 免费在线观看成人网 | 久草久视频 | 九九热视频免费 | 国产成人精品免费视频大全最热 | 九九热精品在线视频 | 久久精品79国产精品 | 成人在线观看小视频 | 一边吃奶一边插下面 | 91精品一区二区综合在线 | 伦一区二区三区中文字幕v亚洲 | 精品国产一区二区三区四 | 他也色在线视频 | 久久综合给合久久狠狠狠97色69 | 国产午夜精品一区二区三区免费 | 欧美激情综合网 | 新久草在线视频 | 国产精品久久久久久久午夜片 | 色网站综合 | bt 自拍 另类 综合 欧美 | 一级大黄毛片 | 大学生一级毛片在线视频 | 亚洲第一成人在线观看 | 一本色道精品久久一区二区三区 | 亚洲欧美日韩中文在线 | 香蕉成人在线观看 | 精品亚洲一区二区三区 | 久久国产午夜 |