localStorage属于HTML5的新功能之一,它的作用和之前学的cookie相像,都可以存东西,那么他们之间有什么区别么?今天查找了一些资料,写一些自己收集的区别如下:
cookie的大小约4k,兼容性在ie6及以上 都兼容,在浏览器和服务器间来回传递,因此它得在服务器的环境下运行,而且可以设定过期时间,默认的过期时间是session会话结束。
localStorage的大小约5M,兼容性在ie7及以上都兼容,有浏览器就可以,不需要在服务器的环境下运行, 会一直存在,除非手动清除 。
接下来是两者分别的使用。首先是localStorage的使用,它的使用方法有两种,两种都能实现写与读的功能。手动删除的两种在下面有详细介绍,其中删单个用getItem,删除全部用clear。记住Item里面的第一个是字母是i大写。
如何查看 localStorage:按F12找到application(resource)点击localStorage,里面有需要查看的写入的东西。
第一种是常用写法:
<script>
//写
localStorage.a = 12;
//读
alert(localStorage.a );
</script>
第二种是标准写法:
<script>
//写setItem
localStorage.setItem('b','today is a good day');
localStorage.setItem('c','i am happy to see you');
// localStorage.removeItem('c');//这个是指定删除
//localStorage.clear();//这个是全部删除,一般不用
//读getItem
alert(localStorage.getItem('b'));
</script>
Cookie的使用方法:
写cookie: document.cookie='212';
读cookie: alert(document.cookie);
expires:设置过期时间
ar oDate=new Date();
oDate.setDate(oDate.getDate()+3);
document.cookie='a=212;expires='+oDate;
path: /(根目录) 默认存在当前目录
document.cookie='b=212;path=/;expires='+oDate;
domain: 存域名(放一级域名)
document.cookie='a=212;domain=www.baidu.com;expires='+oDate;
Cookie的存,取,删
存cookie: function setCookie(name,value,iDay);
获取cookie: getCookie(name)
删除cookie: removeCookie(name)
function removeCookie(name){setCookie(name,'任意值',iDay);}
网页换肤功能:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<link rel="stylesheet" id="link1" href="css/1.css" />
<body>
<input type="button" value="变黑" />
<input type="button" value="变红" />
<input type="button" value="变蓝" />
</body>
</html>
<script type="text/javascript" src="js/cookie.js" ></script>
<script>
var oLink=document.getElementById('link1');
var aBtn=document.getElementsByTagName('input');
var oBgName=getCookie('bgName');
if(oBgName){
oLink.href='css/'+oBgName+'.css';
}
for (var i=0;i<aBtn.length;i++) {
(function(index){
aBtn[index].onclick=function(){
var _index=index+1;
oLink.href='css/'+_index+'.css';
setCookie('bgName',_index,3);
};
})(i);
}
</script>
//调用的Cookie.js封装
function setCookie(name,value,iDay){
if(iDay){
var oDate=new Date();
oDate.setDate(oDate.getDate()+iDay);
document.cookie=name+'='+value+';path=/;expires='+oDate;限时?
}else{
document.cookie=name+'='+value+';path=/;';
}
};
function getCookie(name){
var arr=document.cookie.split('; ');
for (var i=0;i<arr.length;i++) {
var arr2=arr[i].split('=');分开字符串
name=value
//arr2[0]
if(arr2[0]==name){
return arr2[1];
}
}
return '';
}
function removeCookie(name){
setCookie(name,'任意值',-10);
}
1.css
body{
background-color: #000;
}
2.css
body{
background-color: #f00;
}
3.css
body{
background-color: blue;
}