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直接打开的也不是很行的样子。

 

posted @ 2024-10-09 11:46  老飞飞  阅读(6)  评论(0编辑  收藏  举报