A页面即时传值给B页面
需求:一个待办事项列表页面(A页面),点击新开一个处理待办的页面(B页面)。在B页面上点击一个按钮(处理这件事情)后,
要求A页面进行刷新,主要目的是去掉进入B页面的链接,避免进行2次处理等。
找到页面传输数据的方法,首先想到的是cookie。
代码开整,在B页面设定cookie ,main_refresh=1,在A页面设定一个定时1S的定时器,不断检查cookie中main_refresh是否为1,
如果为1,那么重新刷新A页面。
不出意外的会出现意外:A页面的Cookie在B页面修改cookie之后值并不会改变。后面自己想了一下,也明白了事情的原因,cookie是A页面打开时候才会传入一次,后面A页面没有和服务器进行交互,肯定Cookie值一直保持着当初交互时候的值没有改变。
只能改变思路,使用localStorage 来进行处理。
于是在B页面正确完成处理之后,设定值。
localStorage.setItem("main_refresh", "1");
在A页面间隔1S检查是否有事项被完成
setInterval(function () { if (localStorage.getItem("main_refresh") == "1") { location.href = location.href; localStorage.setItem("main_refresh", "0"); } }, 1000);
这样就解决掉了这个问题了。
另外想过使用window.opener的方法,使用window.open直接打开的也不是很行的样子。