HTML5 Web Storage

40,114次阅读
没有评论

共计 4255 个字符,预计需要花费 11 分钟才能阅读完成。

1.1 Web Storage 的概念

Web Storage 可以将数据存储在本地,类似于 Cookie(存储空间的大小只有 4KB 左右),但相比 Cookie 可以 减少网络流量 因为 Web Storage 存储的数据不会发送给服务器,减少数据在浏览器和服务器间不必要地来回传递。

Web Storage 具有以下五个特点:

1、数据的设置和读取比较方便

2、容量较大,可以存储大约 5MB 数据

3、只能存储字符串,如果要存储 JOSN 对象,则可以使用 JOSN.stringify()和 JOSN.parse()方法分别进行序列化和反序列化

4、本地数据可以即时获得

5、数据可以临时存储

1.2 localStorage

localStorage 的主要作用是 本地存储 ,它可以将数据按照 键值对 的方式保存在浏览器中,除非用户或脚本主动清除数据,否则该数据会一直存在(持久化保存)。

localStorage 的优势在于拓宽了 Cookie 的 4KB 限制,并且可以 将第一次请求的数据直接存储到本地,其容量相当于一个 5MB 大小的数据库。

localStorage 在使用中也有一些局限:

1、IE 浏览器在 8 以上的版本才支持

2、不同浏览器保存的数据量大小不统一

3、目前所有的浏览器都会把 localStorage 的值类型限定为 String 类型,对于比较常用的 JavaScript 对象类型需要转换成字符串保存

4、localStorage 在浏览器的隐私模式下是不可读取的

5、localStorage 不能被网络爬虫抓取到

1.3 sessionStorage

sessionStorage 的主要作用是 区域存储,当浏览器标签页关闭后,其中存储的数据会被自动清除。如果打开了不同的标签页,即使是同一页面,sessionStorage 对象也是不同的。所以想要不同标签页下的网页不能相互访问数据,可以将数据保存到 sessionStorage 中。

1.4 localStorage 和 sessionStorage 的区别

这两者的区别在于数据的生命周期不同。localStorage 为 永久保存 ,而 sessionStorage 为 临时保存

即 localStorage 没有过期时间,只要不 clear 或 remove,数据会一直保存。

sessionStorage 针对一个 session 进行数据存储,生命周期与 session 相同,当用户关闭浏览器后,数据将被删除。

方法 / 属性 描述
key(n) 该方法用于返回 localStorage 对象中第 n 个 key 的名称
setItem(key,value) 该方法接受键名和值作为参数,将会把键值对存储到 localStorage 中,如果键名存在,则更新其对应的值
getItem(key) 该方法接受一个键名作为参数,返回键名对应的值
removeItem(key) 该方法删除键名为 key 的存储内容
clear() 该方法清空所有存储内容
length 该属性返回 localStorage 对象中包含的 item 的数量

querySelector 选择器可以通过 document 和 element 来调用他们(括号内单引号双引号均可)

用来代替 getElementById

var body=document.querySelector("body");// 取到 body
body.appendChild(document.createTextNode("ffff"));
var div=document.querySelector("#div1");// 取到 id 为 div1 的第一个元素
var div=document.querySelector(".div1");// 取到类为 div1 的第一个元素
var img=document.querySelector("img.button");// 取到类为 button 的第一个图像元素

querySelectorAll 和上面的一样,返回的不仅仅是一个元素,有点像 nodelist

 var em=document.getElementById("div1").querySelectorAll("em");// 取得 div 中所有的 em 元素
 var div=document.querySelectorAll(".div")// 取得所有的 div 元素
 var strong=document.querySelectorAll("p strong");// 取得 p 元素里面所有的 strong 元素

​​​​​​​https://www.cnblogs.com/HavenLau/p/10476508.html

1.5 Web Storage 事件监听

当使用 Web Storage 存储的数据发生变化时,会触发 Window 对象的 storage 事件,我们可以监听该事件处理函数,当其他页面中的 localStorage 或 sessionStorage 中保存的数据发生改变时,就会执行事件处理函数。

监听 storage 事件的示例代码如下:

//window.addEventListener(事件名,事件处理函数);window.addEventListener('storage',function(event){console.log(event.key);
});

上述代码中,事件处理函数接收了一个 event 对象作为参数,event 对象的 key 属性保存发生变化的数据的键名。

event 对象的属性

属性 描述
event.key 获取在 sessionStorage 或 localStorage 中被修改的数据键名
event.oldValue 获取在 sessionStorage 或 localStorage 中被修改前的值
event.newValue 获取在 sessionStorage 或 localStorage 中被修改后的值
event.url 获取在 sessionStorage 或 localStorage 中发生修改的页面的 URL 地址
event.storageArea 获取变动的 sessionStorage 对象或 localStorage 对象

1.6 代码示例

1.6.1 demo1



    
        
        
        
    
    
        
        
        
        
        
    
    


HTML5 Web StorageHTML5 Web StorageHTML5 Web Storage

1.6.2 deom2



    
        
        
        
    
    
        
        
    
    


HTML5 Web Storage

说明 sessionStorage 存储的数据只在当前打开的浏览器标签中有效HTML5 Web Storage

1.6.3 demo3



    
        
        
    
    
         
        
        
    


HTML5 Web Storage



    
        
        
    
    
        新的用户名:
        
        
旧的用户名:

HTML5 Web Storage

1.7 练习

利用 localStorage 实现留言板效果,具体效果如下图所示,具体要求:

1. 在上面的文本框中输入内容点击留言按钮,可在下方区域显示留言内容和留言时间,同时查看应用程序工具中 localStorage 的内容;

2. 点击清除留言可以清空留言板中的内容,并显示“还没有留言”;

3. 改用 sessionStorage 实现,对比二者的区别。HTML5 Web Storage



	
		
		
		
		
	
	
		

简单的 web 存储留言板




原文地址: HTML5 Web Storage

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-10-29发表,共计4255字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)