如何维护和访问可从所有页面访问的javascript变量?

时间:2010-12-16 07:26:26

标签: javascript

我有一个temp.js文件,其中包含全局变量'num',它最初设置为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。

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

3 个答案:

答案 0 :(得分:1)

您可以编写Cookie。这是你能做的最好的事情。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

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