localstorage

作者: 执著_7a69 | 来源:发表于2017-06-20 11:15 被阅读154次

localStorage

sessionStorage

cookie: 只能存储4KB 浪费流量,每次会随着HTTP请求发送给服务器 操作数据很繁琐,没有方便的API

HTML5 本地存储的优点: 最小5MB,可以申请更大的空间 不会随HTTP请求发送给服务器 有方便的API操作 移动端普及高 有localStorage与sessionStorage两种

支持性检测

if(window.localStorage){

//支持本地存储

}

localStorage为永久性保存数据,不会随着浏览器的关闭而消失,可以在同域名跨页访问。 按域名进行存储,不会和其他域名冲突 键值对存储:key/value

setItem(key , value),保存或设置数据 如果key已经存在,则覆盖key对应的value 如果不存在则添加key与value

localStorage.setItem("name","小明");

getItem(key); 获取key对应的value。 如果key不存在则返回null

alert(localStorage.getItem("name")) //"小明"

alert(localStorage.getItem("abc")) //"null"

key(index); 获取指定下标位置的key

alert(window.localStorage.key(0)); //data

key                       value

data                      {"name","小明"}

length 获取localStorage一共有多少条数据

alert(window.localStorage.length);

配合key(index)方法可以实现遍历localStorage数据的方法

clear(); 将同域名下的所有localStorage数据都清空

removeItem('key'): 删除数据,通过key来删除相应的value

storage事件:当同源的localStorage或sessionStorage有更改以后,其他窗口会触发这个事件。

例:event.key event.newValue .....

sessionStorage为临时性保存数据,当页面关闭就会消失。其他一切与localStorage一样 sessionStorage不能跨页面访问,也不会触发跨标签页的storage事件。它只局限在当前的标签页

目前javascript使用非常多的json格式 如果希望存储在本地,可以直接调用 JSON.stringify() 将json对象转为json字符串 读取出来后调用 JSON.parse() 将json字符串转为json对象格式 如下所示:

var storage=window.localStorage;

var json={"name1":"jack","name2":"lily"};

storage.setItem("name",JSON.stringify(json));

json = JSON.parse(storage.getItem("name"));

cook

测试

var box=document.getElementById('box');

var box2=document.getElementById('box2');

document.cookie='laowang=38岁';

document.cookie='laoliu=28岁';

document.cookie='laowang2=18岁';

// box.innerHTML=document.cookie;

var str='2:4:6:8';

// box.innerHTML=str.split(':'); //['2','4','6','8']

var dates=new Date();

dates.setDate(dates.getDate()+7);

document.cookie='user=123456; expires='+dates;

function setCookie(key,value,days){//设置cookie

var dates=new Date();

dates.setDate(dates.getDate()+days);

document.cookie=key+'='+escape(value)+'; expires='+dates;

}

setCookie('user2','2@2#2你哈根*2',30);

box.innerHTML=document.cookie;

//laowang=38岁; laoliu=28岁; laowang2=18岁

var arr=unescape(document.cookie).split('; ');

/*arr=['laowang=38岁','laoliu=28岁','laowang2=18岁']

var arr2=arr[0].split('='); -> arr2=['laowang','38岁']

var arr3=arr[1].split('='); -> arr3=['laoliu','28岁']

box2.innerHTML=arr2[1];

box2.innerHTML=arr3[1];*/

测试

删除

var btn=document.getElementById('btn');

if (window.localStorage) {

var storage=window.localStorage;

storage.setItem('name1','老王');//设置

storage.setItem('name2','小王');//设置

storage.setItem('name1','中王');//修改

// alert(storage.getItem('name1'));//老王

// alert(storage.getItem('name3'));//null

// alert(storage.key(0));//name1

// alert(storage.length);//2

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

console.log(storage.key(i));

};

btn.onclick=function (){

// storage.removeItem('name2');//删除单个

storage.clear();//删除所有

}

};

相关文章

网友评论

    本文标题:localstorage

    本文链接:https://www.haomeiwen.com/subject/keyoqxtx.html