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

时间:2010-10-25 21:47:19

标签: jquery ajax json jquery-selectors

这是我在下面的代码中引用的陈述 $.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. 附加时间
  3. 是否有任何方法可以克服缓存。当我使用它时,它仍然是缓存。我在$.documnet.ready()中使用了相同的语句,但没有用。

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分: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的解决方案。

答案 2 :(得分:0)

目前还不清楚你的目标是什么。如果要阻止浏览器缓存JSON数据,则应在其标头中指定PHP脚本。

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