HTML5 localStorage 的使用

 

 

        在前端開發中,咱們會常遇到要在兩個甚至多個html之間通訊,咱們能夠在url中添加參數,可是當要傳遞的數據量較大較多時呢,不妨試試html5 的localStorage吧。 html

      

       1) 檢測你的瀏覽器是否支持localStorage:前端

            if(window.localStorage){html5

                   alert('YES!');web

           } else alert('NO!');json

 

       2) 數據都是以鍵值對的形式存儲在localStorage中的,使用時直接在window.localStorage中添加一個屬性就能夠了,定義和修改的示例以下:canvas

            //在window.localStorage添加一個test屬性,並賦值test1的三種實現方式瀏覽器

              localStorage.test = 「test1」;dom

              localStorage[「test」] = 「test1」;    post

              localStorage.setItem(「test」,」test1」);性能

 

             //屬性值得修改同其的定義方式同樣

 

            //屬性值的獲取

            var test = localStorage.test;

            var test = localStorage[「test」];

            var test = localStorage.getItem(「test」);

 

           //屬性的刪除

           localStorage.removeItem(「test」);//清除屬性test

           localStorage.clear();//清除全部的屬性

      

       3) localStorage提供的key()和length能夠方便的實現全部屬性的數據遍歷,例:

           var storage = window.localStorage;

           var key = 「」;

           for(var i = 0;I < storage.length;i++){

               key = storage.key(i);

               console.log(key + 「 : 」 + localStorage.getItem(key));

          }

 

    4)localStorage僅能存儲這種key/value鍵值對形式的數據,若是咱們要存儲的數據量比較大那,能夠試試把這些數據轉化爲json數據,做爲value值存儲進去。如:

         //set the infomation

           var json = {「name」:」echo」,」message」:」hello localStorage」,」id」:1};

           localStorage.setItem(「info」,json);

   

        //get the information

          var info = localStorage.getItem(「info」);

          info = eval(「(」 + info + 」)」);

          console.log(「name:」+info.name+」 message:」+info.message);

 

    5)若是你用html5 的canvas作開發,你能夠把這個canvas的內容生成一個快照在另外一個html中顯示,如:

          //普通canvas實現

            var canvas = document.getElementById(「canvas」);

            var url = canvas.toDataURL(「image/png」);

            localStorage.setItem(「image」,url);

 

         //若是你用webgl作3D開發,可這麼實現

            var url = renderer.domElement.toDataURL('image/png','name');

            localStorage.setItem("image",url);

   

 

    6)最後,localstorage惟一的優勢就是語法簡單,可是性能並非很好,能不用的時候儘可能不用。

相關文章
相關標籤/搜索