2010-12-16 57 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解決方案會將字節添加到您發佈到服務器的每個請求中。你的選擇。

相關問題