整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          基礎面試題07:HTML5的離線儲存怎么使用,解釋一下其工作原理?

          .在用戶沒有與因特網連接時,可以正常訪問站點或應用。

          2.在用戶與因特網連接時,更新用戶機器上的緩存文件。

          原理:HTML5的離線存儲是基于一個新建的.appcache文件的緩存機制(不是存儲技術),通過這個文件上的解析清單離線存儲資源,這些資源就會像cookie一樣被存儲了下來。之后當網絡在處于離線狀態下時,瀏覽器會通過被離線存儲的數據進行頁面展示。

          如何使用:

          一、頁面頭部像下面一樣加入一個manifest的屬性;

          二、在cache.manifest文件的編寫離線存儲的資源;

          CACHE MANIFEST
          #v0.11
          
          CACHE:
          
          js/app.js
          css/style.css
          
          NETWORK:
          resourse/logo.png
          
          FALLBACK:
          / /offline.html
          

          離線存儲的manifest一般由三個部分組成:

          1.CACHE:表示需要離線存儲的資源列表,由于包含manifest文件的頁面將被自動離線存儲,所以不需要把頁面自身也列出來。

          2.NETWORK:表示在它下面列出來的資源只有在在線的情況下才能訪問,他們不會被離線存儲,所以在離線情況下無法使用這些資源。不過,如果在CACHE和NETWORK中有一個相同的資源,那么這個資源還是會被離線存儲,也就是說CACHE的優先級更高。

          3.FALLBACK:表示如果訪問第一個資源失敗,那么就使用第二個資源來替換他,比如上面這個文件表示的就是如果訪問根目錄下任何一個資源失敗了,那么就去訪問offline.html

          三、在離線狀態時,操作window.applicationCache進行需求實現。

          著Web App的發展,越來越多的移動端App使用HTML5的方式來開發,除了一些HybridApp以外,其他一部分Web App還是通過瀏覽器來訪問的,通過瀏覽器訪問就需要聯網發送請求,這樣就使得用戶在離線的狀態下無法使用App,同時Web App中一部分資源并不是經常改變,并不需要每次都向服務器發出請求,出于這些原因,HTML5提出的一個新的特性:離線存儲。通過離線存儲,我們可以通過把需要離線存儲在本地的文件列在一個manifest配置文件中,這樣即使在離線的情況下,用戶也可以正常使用App。

          首先來講解下離線存儲的使用方法,說起來也很簡單。只要在你的頁面頭部像下面一樣加入一個manifest的屬性就可以了。

          <!DOCTYPE HTML>
          <html manifest = "cache.manifest">
          ...
          </html>
          

          然后cache.manifest文件的書寫方式,就像下面這樣:

          CACHE MANIFEST
          #v0.11
          CACHE:
          js/app.js
          css/style.css
          NETWORK:
          resourse/logo.png
          FALLBACK:
          / /offline.html
          

          離線存儲的manifest一般由三個部分組成:

          1.CACHE:表示需要離線存儲的資源列表,由于包含manifest文件的頁面將被自動離線存儲,所以不需要把頁面自身也列出來。

          2.NETWORK:表示在它下面列出來的資源只有在在線的情況下才能訪問,他們不會被離線存儲,所以在離線情況下無法使用這些資源。不過,如果在CACHE和NETWORK中有一個相同的資源,那么這個資源還是會被離線存儲,也就是說CACHE的優先級更高。

          3.FALLBACK:表示如果訪問第一個資源失敗,那么就使用第二個資源來替換他,比如上面這個文件表示的就是如果訪問根目錄下任何一個資源失敗了,那么就去訪問offline.html。

          瀏覽器怎么解析manifest

          那么瀏覽器是怎么對離線的資源進行管理和加載的呢?這里需要分兩種情況來討論。

          • 在線的情況下,瀏覽器發現html頭部有manifest屬性,它會請求manifest文件,如果是第一次訪問app,那么瀏覽器就會根據manifest文件的內容下載相應的資源并且進行離線存儲。如果已經訪問過app并且資源已經離線存儲了,那么瀏覽器就會使用離線的資源加載頁面,然后瀏覽器會對比新的manifest文件與舊的manifest文件,如果文件沒有發生改變,就不做任何操作,如果文件改變了,那么就會重新下載文件中的資源并進行離線存儲。
          • 離線的情況下,瀏覽器就直接使用離線存儲的資源。

          這個過程中有幾個問題需要注意。

          • 如果服務器對離線的資源進行了更新,那么必須更新manifest文件之后這些資源才能被瀏覽器重新下載,如果只是更新了資源而沒有更新manifest文件的話,瀏覽器并不會重新下載資源,也就是說還是使用原來離線存儲的資源。
          • 對于manifest文件進行緩存的時候需要十分小心,因為可能出現一種情況就是你對manifest文件進行了更新,但是http的緩存規則告訴瀏覽器本地緩存的manifest文件還沒過期,這個情況下瀏覽器還是使用原來的manifest文件,所以對于manifest文件最好不要設置緩存。
          • 瀏覽器在下載manifest文件中的資源的時候,它會一次性下載所有資源,如果某個資源由于某種原因下載失敗,那么這次的所有更新就算是失敗的,瀏覽器還是會使用原來的資源。
          • 在更新了資源之后,新的資源需要到下次再打開app才會生效,如果需要資源馬上就能生效,那么可以使用window.applicationCache.swapCache()方法來使之生效,出現這種現象的原因是瀏覽器會先使用離線資源加載頁面,然后再去檢查manifest是否有更新,所以需要到下次打開頁面才能生效。

          對于HTML5中離線存儲對象window.applicationCache有幾個事件需要我們關注下:

          1.oncached:當離線資源存儲完成之后觸發這個事件

          2.onchecking:當瀏覽器對離線存儲資源進行更新檢查的時候會觸發這個事件

          3.ondownloading:當瀏覽器開始下載離線資源的時候會觸發這個事件

          4.onprogress:當瀏覽器在下載每一個資源的時候會觸發這個事件,每下載一個資源就會觸發一次。

          5.onupdateready:當瀏覽器對離線資源更新完成之后會觸發這個事件

          6.onnoupdate:當瀏覽器檢查更新之后發現沒有資源更新的時候觸發這個事件

          TML 5 是最新的超文本標記語言 (HTML),它是用于描述網頁內容和外觀的標準編程語言。如今,所有主要瀏覽器(ChromeSafariFirefoxOpera IE)都提供 HTML5 支持,這使其成為當今使用的最新 HTML 技術。

          下面列出了 HTML5 的一些驚人優勢:

          1. 跨瀏覽器兼容性

          HTML5 易于實現,并且可以與 CSS3 一起使用。今天所有的瀏覽器都支持 HTML5 標簽,甚至 IE6 也能理解標記 <!doctype html> 并且會正確地呈現頁面。

          2. 新的 DOCTYPE 聲明:

          關于 HTML 5 最重要的事實是 - HTML5 易于實現并且可以與 CSS3 一起使用

          HTML5 DOCTYPE 聲明非常簡單:

          <! DOCTYPE html>

          是的,只有DOCTYPE”和“html”這兩個詞,不再有長行充滿臟標簽的不可讀代碼。

          3. 帶來可用性和用戶體驗的改進

          可用性和用戶體驗與網站或應用程序的設計程度有關。我們都想要更好的動態網站和美觀的應用程序與用戶交互并允許用戶享受功能、內容等,而不僅僅是看它。HTML5 Web 具有多項技術增強和改進功能,并且使用 HTML5 代碼,Web 開發人員可以輕松設計更好的應用程序和動態網站,從而帶來更好的用戶體驗和可用性。

          4. 替代 Flash Silver light

          HTML5超越FlashSilver light而領先只是因為播放Flash文件和Silver light需要安裝Adobe Flash最新版本或Silver light插件,還需要注意設備和操作系統的兼容性. HTML 5 并非如此。因此,HTML5 如今在公司中變得越來越流行,因為它提供了大量的屬性和功能,可幫助 Web 開發人員以最少的工作量構建漂亮的網站和應用程序。


          5. 大量用于移動應用和游戲

          HTML5 在移動應用程序和游戲開發中的適應性隨著 HTML5 Web 應用程序工具在從用戶界面 (UI)、開發、使用腳本等開始的所有情況下為 Web 開發人員提供了更大的靈活性而增加。

          HTML5 還能夠處理多媒體內容,而無需安裝插件,我們可以使用該技術輕松開發交互式游戲。

          6. 干凈的標記和改進的代碼

          HTML5 帶有簡潔的標記和簡潔的代碼,使其比以前的版本更易于訪問。HTML 5 允許 Web 開發人員和 Web 設計人員使用更簡潔的代碼并刪除 div 標簽并將所有 div 標簽替換為新的 HTML 5 元素。

          7. 離線瀏覽

          HTML5 還提供離線瀏覽功能,這意味著訪問者可以在沒有有效互聯網連接的情況下加載網頁上的某些元素。假設你訪問了該站點,但不知何故你現在沒有連接到互聯網,或者互聯網連接發生故障。使用 HTML5 離線緩存,我們仍然可以加載網站的核心元素,你可以離線查看它們。

          8. HTML5 在網站抓取和索引方面對 SEO 友好:

          如今,為了在包括谷歌在內的不同搜索引擎中獲得并保持最高排名,必須小心優化網站和所有必要的 SEO 模塊。HTML 5 帶有各種屬性和模塊,使網絡爬蟲可以輕松搜索你的內容并使其正確編入索引,從而提高其在搜索引擎搜索結果頁面中的排名。HTML5 的技術提供了具有廣泛結構元素、語義、表單類型、新屬性和媒體元素的各種功能,使數字營銷專家和開發人員更容易專注于更好的搜索引擎優化技術并推動更多的自然搜索流量。


          9. 視頻和音頻支持

          借助 HTML5 技術,我們不再需要依賴第三方插件來渲染音頻和視頻。你可以忘記 Flash Player 和其他第三方媒體播放器和插件。你可以使用新的 HTML5 <video> <audio> 標簽輕松訪問你的視頻和音頻。

          以前你必須使用舊的 <embed> <object> 標簽并分配大量參數,以顯示視頻可見并正常工作。但是使用 HTML5 的視頻和音頻標簽,我們可以將它們視為圖像; <video src=url/>

          我們只需要像任何其他 HTML 元素一樣在單行標簽中定義高度、寬度和自動播放等參數:<video src=url width=800px height=500pxautoplay/>

          10. 地理位置支持

          在地理定位的幫助下,我們可以輕松地找出我們在世界上的位置,并輕松地與人們分享這些信息。過去,如果我們想首先檢測客戶端設備的位置,我們必須查看客戶端 IP 地址、你的無線網絡連接、手機的基站和緯度和經度。但是對于 HTML5,已經開發了一組 API,它們可以有效地允許客戶端設備(即你的手機、IP 甚至你的桌面瀏覽器)使用你的 HTML5 兼容瀏覽器直接可用的 JavaScript 檢索地理定位信息。

          HTML5 改進并增強了瀏覽體驗。那么為什么不為你的網站和移動應用程序采用 HTML 5 呢?


          了解更多


          主站蜘蛛池模板: 国产精品一区二区三区久久| 性无码免费一区二区三区在线| 国产精品一区二区三区99| 中文字幕一区二区精品区| 无码日韩人妻AV一区二区三区| 国产精品福利一区二区久久| 国产免费一区二区三区在线观看| 蜜桃视频一区二区| 精品国产日韩亚洲一区91| 亚洲美女一区二区三区| 久久精品国产亚洲一区二区| 视频在线一区二区三区| 制服美女视频一区| 国产麻豆媒一区一区二区三区| 伊人久久大香线蕉AV一区二区| 久久er99热精品一区二区| 色欲精品国产一区二区三区AV| 国产熟女一区二区三区四区五区 | 内射女校花一区二区三区| 无码人妻久久一区二区三区蜜桃 | 一区二区三区在线| 无码人妻精品一区二区三区99不卡 | 日韩一区二区在线观看| 国产精品久久无码一区二区三区网| 一区二区三区午夜视频| 99久久综合狠狠综合久久一区| 免费无码毛片一区二区APP| 国产成人精品日本亚洲专一区| 亚洲制服丝袜一区二区三区| 91久久精品一区二区| 无码人妻精品一区二区三区久久久 | 97久久精品无码一区二区| 中文字幕无线码一区二区| 午夜视频在线观看一区二区| 日本一区免费电影| 久久国产精品免费一区| 无码视频一区二区三区在线观看| 亚欧成人中文字幕一区| 亚洲精品伦理熟女国产一区二区| 成人免费视频一区二区三区| 国产A∨国片精品一区二区|