2010-12-16 50 views
0

我有一个temp.js文件,其中包含全局变量'num',它被设置为0.它有一个函数Increment(),它将num递增1.如何维护和访问所有页面都可访问的javascript变量?

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

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

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

回答

1

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

1

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

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

+0

并安全会话的执行:) – 2010-12-16 07:36:18

+0

@Macy修道院:当然! – nico 2010-12-16 09:09:40

0

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

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