如何在JavaScript中维护全局变量的状态?

时间:2011-08-07 01:08:04

标签: javascript jquery global-variables static-members

嗨我有下面的脚本:基本上我有一个导航锚点“next”和“prev”,它会增加或减少currentDate以在几天之间导航。这意味着一旦页面加载,变量currentDate就无法刷新。这个变量应该像静态变量一样,它应该保持它的状态,但是当ajax调用返回时,这个变量每次都更新为新的Date()。

<script>
var currentDate = new Date();

$(document).ready(function() {  
//ajax call to retrieve some values from the server
 });
</script>

是否可以声明一个不会随每个ajax调用刷新的全局变量?或者在这种情况下从服务器获取更新日期更好?还是我错误地处理了这种情况?

谢谢!

3 个答案:

答案 0 :(得分:2)

全局javascript变量通常不会重置为“ new Date()”,因为AJAX调用会返回。如果刷新页面,重置。您确定没有 windows.location 调用或AJAX返回处理程序中的其他内容刷新页面吗?

答案 1 :(得分:1)

每次ajax调用都不会改变

currentDate。如果是,则将其设置在其他位置或者页面本身正在刷新。

答案 2 :(得分:1)

浏览器重新加载之间不保持状态。但是,有很多可能性可以保留您的数据,并再次在页面加载时读取它们。您可以存储数据:

  • 使用JavaScript本地存储(仅适用于HTML5)
  • 通过写入和读取Cookie(与大多数网站一样)
  • 使用windows pageName作为数据存储。在我看来,这是最令人毛骨悚然的解决方案: - )
  • 使用服务器来保存这些内容(比如Gmail这样的应用程序)

在每个主题上都有大量的文档可供使用。