1. 程式人生 > 其它 >jq 請求本地的json_瀏覽器 - 本地快取

jq 請求本地的json_瀏覽器 - 本地快取

技術標籤:jq 請求本地的json

cookie(h5之前的儲存方式)

每次同域名請求時都會傳遞儲存資料,增加網路請求量,並造成主域的汙染,並且不同瀏覽器的cookie的儲存數量和大小不同

dbe707284a8e2d4930301c2063a10cb5.png
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}