首先講存儲方式前要先知道爲何要使用他:一是利用本地數據,介紹網絡請求;二是弱網環境下,高延遲,低帶寬,要把數據本地化;css
介紹:html
存儲大小:5m,cookie只有4k,瀏覽器兼容性很是好,ie8以上都支持,ios無痕瀏覽失效; ios
這個是瀏覽器兼容查詢網站:http://caniuse.com/ web
localStorage(不設置時間戳,不會過時)數據庫
sessionStorage(關閉瀏覽器消失)canvas
經常使用方法:跨域
localStorage.setItem(‘key’,’val’) 存數據瀏覽器
localStorage.getItem(‘key’) 取數據緩存
localStorage.removeItem(‘key’) 移除數據安全
localStorage.key(0) 索引
localStorage.clear() 清空全部數據
使用注意事項:
1.先判斷瀏覽器是否支持
2.寫數據,須要異常處理,避免超出5m容量致使的報錯
3.避免把敏感信息存入localStorage
4.key是有惟一性的
5.會跨域
6.子域名之間不能共享數據
特殊-圖片儲存:
1.建立 canvas
2.drawImage 這張圖片
3.toDataURL 把圖片轉換爲dataurl
4.儲存在localStorage中
介紹:
適用於存儲大量結構化數據
瀏覽器兼容性比較差,ie10以上都支持,安全性較高
基本操做:
//建立數據庫 function openDB (name) { var request=window.indexedDB.open(name); request.onerror=function(e){ console.log('OPen Error!'); }; request.onsuccess=function(e){ myDB.db=e.target.result; }; } var myDB={ name:'test', version:1, db:null }; openDB(myDB.name); //關閉數據庫 function closeDB(db){ db.close(); } //刪除數據庫 function deleteDB(name){ indexedDB.deleteDatabase(name); }
介紹:
瀏覽器兼容性通常,ie10以上都支持
適用於更改少的單頁面,可用戶無網絡狀況下顯示頁面
更新機制不是很好,通常要刷新一次才能更新
使用步驟:
1.頭部加manifest清單
<html manifest="demo.appcache">
2.清單內容以下:
CACHE MANIFEST CACHE: # 須要緩存的列表 style1.css 1.jpg 01.js http://localhost/applicationcache/02.js http://localhost/applicationcache/zepto.js NETWORK: # 不須要緩存的 4.jpg FALLBACK: # 訪問緩存失敗後,備用訪問的資源,第一個是訪問源,第二個是替換文件*.html /offline.html 2.jpg/3.jpg
3.manifest 文件須要配置正確的 MIME-type,即 "text/cache-manifest"。必須在 web 服務器上進行配置,不一樣的服務器不同