localStorage、sessionStorage、Cookie的区别和用法
时间:2023-04-05 15:52:24
HTML5
localStorage、sessionStorage、Cookie的区别和用法webstoragewebstorage是本地存储,存储在客户端,包括localStorage和sessionStorage。localStoragelocalStorage的生命周期是永久的,也就是说除非用户在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。存储数据的大小一般为5MB,只保存在客户端(即浏览器),不参与与服务器的通信。sessionStoragesessionStorage只在当前会话有效,关闭页面或浏览器后会被清除。存储数据的大小一般为5MB,只保存在客户端(即浏览器),不参与与服务器的通信。原生接口还可以,也可以再封装一下,更好的支持Object和Array。localStorage和sessionStorage使用相同的API:localStorage.setItem("key","value");//存储一个值"value",以"key"为名称localStorage.getItem("key");//获取名称“key”的值localStorage.removeItem(“key”);//删除名为“key”的信息。localStorage.clear();//清除localStorage中的所有信息。举一个简单的例子来理解它们的用法。模仿京东官网顶部的广告关闭。效果是第一次进入官网会出现广告,然后点击关闭刷新网页就不再显示广告,但是当localStorage存储的数据清空后,又会显示广告网页被刷新。html代码x
csscode.header{width:100%;高度:80px;背景:#000;}.header-a{宽度:1190px;保证金:0自动;职位:相对;background:url("images/1.jpg")no-repeat;}.header-aa{width:100%;高度:80px;显示:块;}。关闭{光标:指针;颜色:#fff;位置:绝对;顶部:5px;右:5px;背景:rgb(129、117、117);宽度:20px;文本对齐:居中;line-height:20px;}js代码//localStorage方法functionhaxi(){//判断localStorage是否存在isCloseif(localStorage.getItem("isClose")){$(".header").hide();}else{$(".header").show();}//点击关闭隐藏图片访问数据$(".close").click(function(){$(".header").fadeOut(1000);localStorage.setItem("isClose","1");})}haxi();不同范围、不同浏览器无法共享localStorage或sessionStorage中的信息同一个浏览器的不同页面可以共享相同的信息localStorage(页面属于相同的域名和端口),但sessionStorage信息不能在不同的页面或标签之间共享。这里需要注意的是,pages和tabs只是指顶层窗口。如果一个选项卡包含多个iframe标签,并且它们属于同源页面,则可以在它们之间共享sessionStorage。cookie的生存期只在设置的cookie过期时间之前有效,即使关闭了窗口或浏览器。存储的数据大小约为4K。有数量限制(每个浏览器不同),一般不超过20个。与服务器通信:每次都会在HTTP头中携带。如果使用cookie保存过多的数据,会导致性能问题。但是cookie需要程序员自己封装,而且cookie原有的接口并不友好(http://www.jb51.net/article/6...)。js代码//Cookie方法//Cookie函数封装自身并引入函数haxi(){if(getCookie("isClose")){$(".header").hide();}else{$(".header").show();}$(".close").click(function(){$(".header").fadeOut(1000);setCookie("isClose","1","s10");})}haxi();cookie的优点:极高的扩展性和可用性1.通过良好的编程,控制保存在cookie中的session对象的大小。2、通过加密和安全传输技术,降低cookie被破解的可能性。3、cookie中只存储不敏感的数据,即使被盗也不会有太大的损失。4.控制cookies的生命周期,使其不会永远有效。在这种情况下,小偷很可能得到一个过期的cookie。曲奇的缺点:1、曲奇的长度和数量是有限制的。每个域最多只能有20个cookie,每个cookie的长度不能超过4KB。否则它将被截断。2.安全问题。如果cookie被某人阻止,则该人可以获得所有会话信息。加密也不起作用。3.部分状态无法在客户端保存。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果计数器保存在客户端,则没有任何作用。localStorage、sessionStorage、Cookie的共同点:都是存储在浏览器端,同源。