天天看點

Web儲存

東抄西拼

1、兩種方法

  • localStorage-存儲的資料沒有時間限制。兩天、兩周或者兩年資料依然可以使用
  • sectionStorage-針對一個session的資料存儲(當浏覽器關閉,資料會被清除)

2、與cookie作對比

        cookie不适合大量資料的存儲,因為它們由每個伺服器的請求來傳遞,這使得cookie速度很慢而且效率也不高

localStorage使用方法

localStorage.length  傳回現在已經存儲的變量數目

localStorage.key(n) 傳回第N個變量的鍵值(key)

localStorage.getItem(key) 和localStorage.key一樣,取得鍵值為key的變量的值

localStorage.setItem(key,val) 和localStorage.key=val 一樣,設定鍵值key的變量值

localStorage.removeItem(key) 删除鍵值為key的變量

localStorage.clear() 清空所有變量

localStorage.a = 7; //設定a為"3"

localStorage["a"]="sfsf"; //設定a為"sfsf",覆寫上面的值

localStorage.setItem("b","isaac"); //設定b為"isaac"

var a1 = localStorage["a"]; //擷取a的值

var a2 = localStorage.a; //擷取a的值

var b = localStorage.getItem("b"); //擷取b的值

localStorage.removeItem("c"); //清楚c的值

JSON.stringify() 存儲在本地,調用JSON.stringify()将其轉為字元串

JSON.parse()  讀取出來後調用JSON.parse()将字元串轉為json格式

   var details = {author:"isaac","description":"fresheggs","rating":100};

    storage.setItem("details",JSON.stringify(details));

    details = JSON.parse(strong.getItem("details"));

HTML5本地存儲隻能存字元串,任何格式存儲的時候都會自動轉為字元串,是以讀取時候需要自己進行類型的轉換。可以通過JSON.parse/JSON.stringify結合使用

測試浏覽器是否支援localStorage

<script>
        if(window.localStorage){
           alert('This browser supports localStorage');
        }else{
            alert('This browser does NOT support localStorage');
        }
    </script>
           

頁面計數

<script>
function draw2(){
            if(localStorage.pagecount){
                localStorage.pagecount = Number(localStorage.pagecount)+1;
            }else{
                localStorage.pagecount =1;
            }
            document.write("Visits:"+localStorage.pagecount+"time(s)");
        }
</script>
           

頁面read and write

<script>
if(localStorage.a){
                txt1.value = localStorage.a;
            }
            if(localStorage.f){
                sty.value =localStorage.f;
            }
            btn1.οnclick=function(){
                localStorage.a = txt1.value;
                localStorage.f = sty.value;
            }
</script>