jq 請求本地的json_瀏覽器 - 本地快取
阿新 • • 發佈:2021-01-03
技術標籤:jq 請求本地的json
cookie(h5之前的儲存方式)
每次同域名請求時都會傳遞儲存資料,增加網路請求量,並造成主域的汙染,並且不同瀏覽器的cookie的儲存數量和大小不同
var cookie = { /**設定cookie ** name 標識 ** value 值 ** options { ** 'path': '訪問路徑', ** 'domain' : '域名', ** 'expire' : 過期時間 } **/ setCookie : function(name,value,options){ var options = options ? options : {}, path = options.path ? options.path : '/', domain = options.domain ? options.domain : document.domain, time = options.expire ? (new Date().getTime() + options.expire * 1000) : '', expire = new Date(time).toUTCString(); document.cookie = encodeURIComponent(name) + "="+ encodeURIComponent(value) + ";expires=" + expire + ";domain=" + domain + ";path=" + path; }, //獲取cookie getCookie: function(name){ var arr, reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); if(arr=document.cookie.match(reg)){ console.log(arr); return unescape(arr[2]); } return null; }, //移除cookie removeCookie: function(name){ var val = this.getCookie(name); if(val != null){ this.setCookie(name,val, { expire : - 1 }) } } }
sessionStorage和localStorage
一般限制同一域名5M
localStorage的儲存週期為永久,只要開發者不手動刪除,會一直存在
sessionStorage的儲存週期為當前會話,資料會在瀏覽器會話(browsing session)結束時被清除,即瀏覽器關閉時
localstorage儲存以字串的形式,儲存物件時,預設呼叫toString方法,解析時需要用JSON.stringify轉化儲存,獲取資料後再用JSON.parse轉化為物件
var ls = window.localStorage ls.setItem('test', '本地儲存字串') console.log(ls.getItem('test')) // 本地儲存字串 var testData = {a: 1, b: 2} var testDataParse = JSON.stringify(testData) ls.setItem('obj', testDataParse) console.log(ls.getItem('obj')) // {a: 1, b: 2}