【问题标题】:How to maintain state of global vaiable in JavaScript?如何在 JavaScript 中维护全局变量的状态?
【发布时间】:2011-08-07 01:08:03
【问题描述】:

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

<script>
var currentDate = new Date();

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

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

谢谢!

【问题讨论】:

    标签: javascript jquery global-variables static-members


    【解决方案1】:

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

    【讨论】:

    • 你说得对,我不得不从锚标签中删除 href 属性。
    【解决方案2】:

    currentDate 不会随着每次 ajax 调用而改变。如果是这样,那么它要么被设置在其他地方,要么页面本身正在被刷新。

    【讨论】:

      【解决方案3】:

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

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

      关于这些主题中的每一个,都有大量文档可供使用。

      【讨论】:

        猜你喜欢
        • 2021-05-17
        • 1970-01-01
        • 2018-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-18
        相关资源
        最近更新 更多