这是在 Jquery 中使用此语句的正确位置吗

Posted

技术标签:

【中文标题】这是在 Jquery 中使用此语句的正确位置吗【英文标题】:Is this the Correct place of using this statement in Jquery 【发布时间】:2011-04-30 11:14:43 【问题描述】:

这是我引用以下代码的语句$.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"
          );

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

    $.ajaxSetup ( cache: false); 通过附加时间

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

【问题讨论】:

【参考方案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

【讨论】:

以上是关于这是在 Jquery 中使用此语句的正确位置吗的主要内容,如果未能解决你的问题,请参考以下文章

LINQ 实体 Where 子句不在正确位置

jQuery找到最接近对象的位置

如何使用固定位置的jQuery可拖动?

使用 IF 语句设置 UIView 的位置

jQuery UI Droppable and Sortable - 放置在正确的排序位置

在 jquery drop UI 中,如何使用正确的鼠标位置将拖动元素克隆到放置位置?