cookie:jquery
数据大小不能超过4KB。web
无论是否有需求,cookie数据都会在HTTP请求中携带,在浏览器和服务器中来回传递,占用资源。后端
能够在后端设置修改,数据仅在本地浏览器保存。浏览器
cookie数据能够设置路径,限制cookie只属于某个路径下。服务器
默认数据失效是关闭浏览器,也能够设置失效时间cookie
sessionStorage:session
数据大小5M或者更大。框架
不会和跟随HTTP请求,因此不会占用资源。插件
数据存储在浏览器仅在浏览器为关闭的状态,关闭窗口后数据就会销毁。能够讲是“临时存储”code
sessionStorage在不一样浏览器窗口下不会共享数据,即便打开同一个页面。
localStorage :
数据大小5M或者更大。
不会和跟随HTTP请求,因此不会占用资源。
数据保存在本地硬件设备(一般指硬盘,也能够是其余),须要用户主动删除,不然就是永久保存 。不一样浏览器之间不会共享数据。
cookie能够写好封装,也可直接用已经写好的框架这里推荐一个吧‘jquery.cookies.2.2.0.min.js’;注意还有有一个是cookie.js的也能够,我的以为没有“jquery.cookies.2.2.0.min.js”好用。
先说一下,JavaScript原生的用法。
Cookie 以名/值对形式存储
例如username=John Doe,这里的数据是string类型,如要是其余格式注意进行格式转换。
JavaScript 可使用 document.cookie 属性来建立 、读取、及删除 cookie。
JavaScript 中,建立 cookie 以下所示:document.cookie="username=John Doe";
您还能够为 cookie 添加一个过时时间(以 UTC 或 GMT 时间)。默认状况下,cookie 在浏览器关闭时删除:document.cookie="username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 GMT";
您可使用 path 参数告诉浏览器 cookie 的路径。默认状况下,cookie 属于当前页面。document.cookie="username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 GMT; path=/";
function setCookie(cname,cvalue,exdays) { var SetTime = new Date(); //设置过时时间 SetTime.setTime(SetTime.getTime()+(exdays*24*60*60*1000)); //设置过时时间 var expires = "expires="+SetTime.toGMTString(); //设置过时时间 document.cookie = cname + "=" + cvalue + "; " + expires; //建立一个cookie }
function getCookie(c_name) { if (document.cookie.length>0) { c_start=document.cookie.indexOf(c_name + "=") if (c_start!=-1) { c_start=c_start + c_name.length+1 c_end=document.cookie.indexOf(";",c_start) if (c_end==-1) c_end=document.cookie.length return unescape(document.cookie.substring(c_start,c_end)) } } return "" }
将cookie的有效时间改为昨天。
注意这里用的是cookies.js
注意这里用的是cookies.js
不是cookie.js
它们是两个不一样的插件,容易搞混
若是以为上面的方法有点麻烦,就用别人已经封装好的插件吧,“jquery.cookies.2.2.0.min.js”
添加/修改cookie并设定过时时间:
`$.cookies.set('cookie_id', 'cookie_value', { hoursToLive: 10 });
这里设置的是过时时间是10小时
还能够这样设置过时时间:
expireDate = new Date(); expireDate.setTime( expireDate.getTime() + ( 10 * 60 * 60 * 1000 ) ); $.cookies.set('cookie_id', 'cookie_value', {expiresAt:expireDate});
获取cookie
$.cookies.get('cookie_id');
删除cookie
$.cookies.del('cookie_id');
H5对于web storage的支持很友好,使用方法很简单
sessionStorage.getItem(keyName); //获取指定key的本地存储的值 //或者 var keyName=sessionStorage.key; ---------- sessionStorage.setItem(keyName,value); // 将value存储到key字段中 //或者 sessionStorage.keyName='value'; ---------- sessionStorage.removeItem(keyName); // 删除指定ke的本地存储的值
基本和sessionStorage同样;
localStorage.getItem(keyName); //获取指定key的本地存储的值 //或者 var keyName=localStorage.key; ---------- localStorage.setItem(keyName,value); // 将value存储到key字段中 //或者 localStorage.keyName='value'; ---------- localStorage.removeItem(keyName); // 删除指定ke的本地存储的值
sessionStorage.clear(); //清除全部sessionStorage数据 localStorage.clear() //清除全部localStorage数据