Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

使用Cookie做跨页面通信

  Cookie的存储在硬盘中的,而网页是运行在内存中的,他们会共用硬盘上的Cookie。而document.cookie这个属性不仅仅是一个Setter属性,还是个Getter属性。当我们访问这个属性时,它会从硬盘上保存的Cookie中读入数据。而Cookie是以域名和目录名来储存的,它没有精确到页面。这就意味着多个页面是共用一个Cookie的。既然页面之间有共同的数据存储区域,我们就可以利用它来实现跨页面的通信。
  但是Cookie并没有change之类的事件,我们只能使用一个计时器去扫描。计时器的时间间隔可以依据项目需求来设置。下面是例子 <script>
onload=function(){
  //创建一个文本节点,用来显示当前数据
  var t=document.createTextNode("");
  document.body.appendChild(t);
  //创建计时器来扫描Cookie,间隔是1秒
  setInterval(function(){
    //读取Cookie
    var v=document.cookie.match(/data=(.+?)(?=;|$)/);
    t.data=v?decodeURIComponent(v[1]):"";
  },1000);
  //按钮点击时把文本框内的内容放入Cookie中
  btn.onclick=function(){
    document.cookie="data="+encodeURIComponent(inp.value);
  };
};
</script>
<input id="inp" /><br/>
<input id="btn" type="button" value="设置" />

  这个例子只是实现了最简单的跨页面通信的效果,具体如何应用就得自己去研究了。
网名:
3.80.32.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^