這篇文章主要介紹了HTML5中Localstorage的使用教程,Localstorage被用于瀏覽器和系統交互的本地傳出,需要的朋友可以參考下
什么是localstorage
前幾天在老項目中發現有對cookie的操作覺得很奇怪,咨詢下來是要緩存一些信息,以避免在URL上面傳遞參數,但沒有考慮過cookie會帶來什么問題:
① cookie大小限制在4k左右,不適合存業務數據
② cookie每次隨HTTP事務一起發送,浪費帶寬
我們是做移動項目的,所以這里真實適合使用的技術是localstorage,localstorage可以說是對cookie的優化,使用它可以方便在客戶端存儲數據,并且不會隨著HTTP傳輸,但也不是沒有問題:
① localstorage大小限制在500萬字符左右,各個瀏覽器不一致
② localstorage在隱私模式下不可讀取
③ localstorage本質是在讀寫文件,數據多的話會比較卡(Firefox會一次性將數據導入內存,想想就覺得嚇人啊)
④ localstorage不能被爬蟲爬取,不要用它完全取代URL傳參
瑕不掩瑜,以上問題皆可避免,所以我們的關注點應該放在如何使用localstorage上,并且是如何正確使用。
localstorage的使用
基礎知識
localstorage存儲對象分為兩種:
① sessionStrage: session即會話的意思,在這里的session是指用戶瀏覽某個網站時,從進入網站到關閉網站這個時間段,session對象的有效期就只有這么長。
② localStorage: 將數據保存在客戶端硬件設備上,不管它是什么,意思就是下次打開計算機時候數據還在。
兩者區別就是一個作為臨時保存,一個長期保存。
這里來一段簡單的代碼說明其基本使用:
xml/HTML Code復制內容到剪貼板
XML/HTML Code復制內容到剪貼板
- <div id="msg" style="margin: 10px 0; border: 1px solid black; padding: 10px; width: 300px; height: 100px;">
- </div> <input type="text" id="text" />
- <select id="type"> <option value="session">sessionStorage</option>
- <option value="local">localStorage</option> </select>
- <button onclick="save();"> 保存數據</button>
- <button onclick="load();"> 讀取數據</button>
- <script type="text/javascript"> var msg = document.getElementById('msg'),
- text = document.getElementById('text'), type = document.getElementById('type');
- function save() {
- var str = text.value; var t = type.value;
- if (t == 'session') { sessionStorage.setItem('msg', str);
- } else { localStorage.setItem('msg', str);
- } }
- function load() {
- var t = type.value; if (t == 'session') {
- msg.innerHTML = sessionStorage.getItem('msg'); } else {
- msg.innerHTML = localStorage.getItem('msg'); }
- } </script>