【问题标题】:How to maintain and access javascript variable which is accesible from all the pages?如何维护和访问可从所有页面访问的 javascript 变量?
【发布时间】:2011-05-26 09:27:09
【问题描述】:

我有一个包含全局变量 'num' 的 temp.js 文件,它最初设置为 0。它有一个函数 Increment() 将 num 增加 1。

我有 2 个 html 文件 Page1.html 和 Page2.html。两者都是指 temp.js 文件()。这两个页面都有一个点击按钮,我称之为 javascript 并导航到另一个页面。即,在从 Page1.html 中单击按钮时,我会导航到 Page2.html,反之亦然。

在从任何页面导航之前,我调用了 Increment() 函数。我看到的是 num 始终初始化为 0,而 Increment 函数将其设置为 1。我想要的是第一次将 num 设置为 0,然后在我调用该函数时递增 1。

无论如何我都可以实现上述目标。在我的场景中,排除了使用查询字符串传递值或维护某种类型的母版页。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您可以编写 cookie。这是你能做的最好的。

    【讨论】:

      【解决方案2】:

      最好的办法是将变量写入 cookie。请注意,这是现有的最简单的欺骗方法之一,因此如果计数器以任何方式“重要”,则应避免这样做。

      在最后一种情况下,最好的办法是将计数器存储在会话变量中。这将需要 1) 一种服务器端语言(例如 PHP、ASP、Perl)2) 对服务器上更新会话的页面的异步调用 (AJAX)。

      【讨论】:

      • 以及会话的安全实现:)
      【解决方案3】:

      您还可以有一个母版页,其中 iframed Page1.html。当您在 iframe 中浏览到 Page2.html 时,父页面的上下文仍然存在。然后,您可以使用 parent.counter 从框架中的两个文档中引用您的全局计数器。

      但是,使用 iframe 会在页面加载时增加一个额外的 http 请求,并导致浏览器消耗额外的资源。这也会使您的网站复杂化。 cookie 解决方案会为您向服务器发出的每个请求添加字节。您的选择。

      【讨论】:

        猜你喜欢
        • 2018-08-20
        • 1970-01-01
        • 2014-01-06
        • 1970-01-01
        • 2023-04-09
        • 1970-01-01
        • 2013-08-11
        • 2015-07-01
        • 1970-01-01
        相关资源
        最近更新 更多