頁面相關的資料存放區(緩衝及Web Storage)

來源:互聯網
上載者:User

頁面可用的緩衝包括:Http Cache, Local Storage, Session Storage以及Application Cache. 它們都可以用來減少請求數量,以提高頁面的效能及減少流量消耗,這對於移動端的瀏覽器來說更為重要 (另外還有Memory Cache, 不過對於前端工程而言是透明的)。


Http Cache

最為常用的緩衝機制。相對後三項屬於瀏覽器核心內的模組(也是H5中定義的標準),Http Cache早已存在於HTTP模組中了。它是網路層對HTTP協議實現中一部分。它基於對回應標頭中的Cache Conrol資訊進行解析,執行新鮮度檢查、條件更新等操作來管理緩衝。緩衝的容量限制及淘汰、更新演算法在各個瀏覽器中實現都不相同,屬於瀏覽器及頁面開發最佳化的一個重點。比如緩衝趙多的內容會使得網頁請求的數量更少,但是緩衝的內容達到一定量後,會導致查詢及I/O變慢,反而使得投入產出比下降。容量是基於儲存空間而定,不同的瀏覽器會有不同的最大值,而且不同的使用者在實際使用是對緩衝總量的依賴也不同。這些都是瀏覽器效能最佳化時考慮的內容。


詳細內容可以通過<<管好頁面緩衝>>瞭解。


它的一個問題在於緩衝內容的淘汰基於演算法的實現,無法保證單獨針對需要保留某個資源。所有的資源都可能因為緩衝策略的變化,儲存空間的變化而遭到淘汰。所以針對這種情境,HTML5定義了能更好地支援離線瀏覽的Applcation Cache。



Application Cache 

 應用於離線情境下可以讓使用者繼續使用頁面的情境,比如支援離線的遊戲、及Office編輯應用等。 沒有明確的容量限制,WebKit系列的瀏覽器會有每個網域名稱5MBytes的限制(預設而已,具體會有變化)。考慮到一些瀏覽器儲存時使用UTF-16編碼,並不能真正達5MBytes。


Application Cache是一種基於請求的主動式快取,緩衝的內容受Cache Control資訊控制,包括相關的新鮮度檢測等。


實際應用時, Application Cache比較容易出問題, 典型的有,如何更改manifest檔案以達到資源更新的目的,以及可能會造成重複緩衝(manifest解析的時機不同)。 在決定使用Application Cache,一定要好好讀讀這篇文章:<<Application Cache is a Douchebag>>。


Application Cache提供的API非常簡單,它並不依賴於JS就可以實現緩衝的目的,同是又可以通過API來獲得緩衝的狀態。詳細內容參考H5規範中的定義<<Offline Web Applications>>。



Local Storage & Session Storage

使用方式和Cookie相似,主要應對Cookie不適合儲存較大資料的情況,否則會導致與伺服器互動的資料變大,效能易受到影響。。相對於Applcation Cache, 它們的使用依賴於JS, 但是簡單明確。


Local Storage及Session Storage在H5稱為Web Storage, 使用相同的API, 只是兩者存在周期不同。前者可以一直儲存,沒有時間限制。後者則只存在於一個會話期,使用者關閉瀏覽器後就會清除(除非瀏覽器支援重啟後恢複上次的會話)。


在儲存的API中,有不同的調用方式, 其效能是有差異的,並且不同的瀏覽器表現迥異:




可能的原因是相對大家都關注的JS Engine執行效能問題的逐步改善,DOM的操作時間對效能的影響更大。下面的資料來自IE團隊針對使用較多AJAX請求的頁面的統計:



Web Storage的最大問題在於儲存的同步問題,好在有一些JS庫可以協助改善這個問題。詳細的內容可以閱讀<<HTML5 and JavaScript Web Apps>>第6章Optimizing with Web Storage.


轉載請註明出處: http://blog.csdn.net/horkychen


  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.