【问题标题】:Is this the Correct place of using this statement in Jquery这是在 Jquery 中使用此语句的正确位置吗
【发布时间】:2026-01-10 06:20:03
【问题描述】:

这是我引用以下代码的语句$.ajaxSetup ({ cache: false});

我有一个生成 JSON 的 PHP 脚本。我正在使用这个 json:

      $.getJSON ("GetDetails.php?id=123",
          $("#formname").serialize(),
          function(data){
              **$.ajaxSetup ({ cache: false});**
          //I do all processing with the "data"
          });

我在堆栈溢出中看到了各种关于缓存的问题,我知道这也消除了缓存

  1. $.ajaxSetup ({ cache: false});
  2. 通过附加时间

有什么方法可以克服缓存。当我使用它时,它仍在缓存中。我在 $.documnet.ready() 中使用了相同的语句,但没有用。

【问题讨论】:

    标签: jquery ajax json jquery-selectors


    【解决方案1】:

    $.ajaxSetup() 调用您希望受其影响的 AJAX 方法的使用之前(您只需要运行一次,而不是在每次调用之前),如下所示:

    $.ajaxSetup ({ cache: false});
    $.getJSON ("GetDetails.php?id=123", $("#formname").serialize(), function(data){
      //I do all processing with the "data"
    });
    

    【讨论】:

      【解决方案2】:

      相反,您可以使用:

      $.ajax({
          url: "GetDetails.php?id=123",
          dataType: 'json',
          data: $("#formname").serialize(),
          cache: false,
          success: function(data){
                      //I do all processing with the "data"
                   });
      });
      

      这将禁用该特定查询的缓存,因此您可以对其他查询使用.ajax 调用的正常、启用缓存的版本。如果您想在整个应用程序中禁用缓存,可以使用 Nick 的解决方案。

      【讨论】:

        【解决方案3】:

        有点不清楚你在说什么。如果您想防止浏览器缓存 JSON 数据,您应该让 PHP 脚本在其标头中指定它。

        http://articles.sitepoint.com/article/php-anthology-2-5-caching

        【讨论】: