【问题标题】:Javascript global variable life timeJavascript全局变量生命周期
【发布时间】:2012-09-30 14:27:53
【问题描述】:

(我是 Javascript 初学者)

当我学习 Javascript 全局变量的生命周期时,它说:

全局变量的生命周期从它们被声明时开始,并且 页面关闭时结束。

我读到 Javascript 会将全局变量存储到窗口对象中?什么时候会被销毁?在网络浏览器中关闭标签后?

例如: 如果 abc.com/page1.html 创建一个全局变量,然后在同一个选项卡中,我导航到 abc.com/page2.html 全局变量是否仍然存在?如果我在同一个选项卡中导航到另一个域,例如 another.com/page1.html,怎么样?

【问题讨论】:

  • (a) 在 page1 上创建 var,导航到 page2 - 不。您必须关闭 page1 才能打开 page2 (b) 参见 [a]
  • 以后会更好地支持localStoragesessionStorage。不过,我不知道它现在是否真正可行。
  • @Jared Farrish:有this,然后是this...

标签: javascript web-applications


【解决方案1】:

一旦窗口被卸载,你所有的 JavaScript 变量都会丢失,假设你从第 1 页移动到第 2 页,在窗口离开时你的变量会丢失,同样适用于同一域或跨域

【讨论】:

    【解决方案2】:

    不,全局变量不能从一页到另一页。如果需要在页面之间保存数据,则需要维护状态。

    维护状态涉及使用 cookie 或查询字符串值。我对How to use JavaScript to fill a form on another page 的回答深入解释了这一点。

    【讨论】:

    • 那么绑定到 window 的全局变量的生命周期是怎样的呢?我尝试为窗口设置一个全局变量,关闭并重新打开 chrome,但变量仍然存在。
    猜你喜欢
    • 1970-01-01
    • 2018-12-14
    • 2011-10-25
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多