企业网站建立流程的第一步是,做软件赚钱吗,网站建设的基本准则是什么,采纳品牌营销策划公司当使用Web Storage存储的数据发生变化时#xff0c;会触发Window对象的storage事件#xff0c;我们可以监听该事件并指定事件处理函数#xff0c;当其他页面中的localStorage或 sessionStorage中保存的数据发生改变时#xff0c;就会执行事件处理函数。
监听storage事件的…当使用Web Storage存储的数据发生变化时会触发Window对象的storage事件我们可以监听该事件并指定事件处理函数当其他页面中的localStorage或 sessionStorage中保存的数据发生改变时就会执行事件处理函数。
监听storage事件的示例代码如下
// window.addEventListener(事件名 事件处理画数
window.addEventListener(storage, function (event) {console.log(event.key);
}):上述代码中事件处理函数接收一个event对象作为参数event对象的key属性保存发生变化的数据的键名。event对象具有的一些属性如表所示。 需要注意的是storage事件并不在导致数据变化的当前页面触发。如果浏览器同时打开一个域名下面的多个页面当其中的一个页面改变sessionStorage或localStorage的数据时其他所有页面的storage事件会被触发而原始页面并不触发storage事件。通过这种机制可以实现多个页面之间的通信。
由于sessionStorage无法在不同标签页的网页中互相访问数据当使用storage事件时可以将页面放在iframe标签创建的框架中此时在框架内通过storage事件可以监听外层页面的sessionStorage的数据变化。
对storage事件有了基本了解之后下面演示如何使用storage事件对页面中的数据进行监听。我们通过两个页面进行演示第1个页面demo03-l.html 用来修改localstorage数据第2个页面demo03-2.html 用来监听数据的变化并实现数据的同步。
(1)创建C:\codechapter02demo03-1.html定义一个文本框用来输入用户名定义一个“保存”按钮用来将文本框中的用户名保存在localstorage中具体代码如下
!DOCTYPE html
html
headmeta charsetUTF-8titleDocument/title
/head
bodylabel用户名/labelinput typetext idusernamebutton idsave保存/buttonscriptvar lsername document.querySelector (#username);//单击”保存“按钮设置数据document.querySelector(#save).onclickfunction() {var valusername.value; // 获取username里面的值localStorage.setItem(username, val);};/script
/body
/html在上述代码中第8行代码的文本框用于输入用户信息;第l3~16行代码用于设置localstorage的数据。
(2)保存代码在浏览器中进行测试效果如图所示。 初始页面效果
(3)在图2-8所示的文本框中输入“userl”单击“保存”按钮然后进入开发者工具的Application选项卡找到Local Storage选项并单击该选项下的http://127.0.0.1:5500地址可以看到设置的localStorage中Key的值为“usermame”Value的值为“userl”的数据如图所示。 设置数据
(4)创建C:kcodelchapter02\demo03-2.html,通过storage事件监听数据的变化并定义两个标签用来显示数据修改前和修改后的值具体代码如下
!DOCTYPE html
html
headmeta charsetUTF-8titledocument/title
/head
bodyspan新的用户名/spanspan idnewval/spanbrspan旧的用户名/spanspan idoldval/spanscriptvar newdatadocument.getElementById(newval);var olddatadocument.getElementById(oldval);window.addEventListener(storage, function(e){ newdata.innerHTMLme.newValue: //设置元素的内容为修改后的值olddata.innerHTMLe.oldValue; //设置元素的内容为修改前的值});
/script
/body
/html上述代码中第9行代码和第12行代码定义了两个标签用来显示数据被修改后和数据修改前的值;第16~19行代码通过storage事件获取e.newValue和e.oldValue的值并显示到标签中。
(5)保存代码在浏览器中进行测试效果如图2-10所示。 页面初始效果
(6)切换到demo03-1.html页面,在文本框中输入“user2”然后单击“保存”按钮。再切换到demo03-2.html网页效果如图2-11所示。 修改后与修改前的用户名
从图2-11可以看出页面显示新的用户名为“user2”旧的用户名为“userl”。由此可知通过storage事件可以监听 localStorage数据发生的变化。