【问题标题】:weird IE7 $.getJSON ajax call奇怪的 IE7 $.getJSON ajax 调用
【发布时间】:2011-09-14 20:04:36
【问题描述】:

我正在使用 $.getJSON 执行对最新数据库更新的 ajax 调用。 Chrome 和 Firefox 工作正常,但 IE7 使用 IE7 时,服务器将响应我清除 IE7 缓存后的第一次更新。

有什么想法吗?

【问题讨论】:

    标签: php jquery getjson


    【解决方案1】:

    可以使用 $.ajax 来代替这些选项。注意 'cache: false':

    $.ajax({
      url: url,
      dataType: 'json',
      cache: false,
      data: data,
      success: callback
    });
    

    见:http://api.jquery.com/jQuery.ajax/

    【讨论】:

      【解决方案2】:

      我以前经历过。您可能希望添加一个每次都不同的新参数。像这样的:

      var ts = new Date().getTime(); //get the current timestamp
      //add the ts as a parameter to your call along with all your other data. 
      

      这样每个请求都是不同的,IE不会缓存它。

      【讨论】:

        【解决方案3】:

        IE 有缓存 AJAX 调用响应的坏习惯。

        向您的查询字符串添加一个虚拟参数,该参数在您每次进行 AJAX 调用时都会更改,然后您将获得新的结果。

        更新:如果你使用 Mootools,那么你可以have this done automatically。寻找noCache 选项。

        【讨论】:

          【解决方案4】:

          这是缓存的问题,IE 缓存您的数据,以便后面的调用不会从服务器获取结果,而是在 IE 缓存中获取结果

          如果你的所有 ajax 都使用 jQuery,那么你应该先运行它:

          $.ajaxSetup({
            cache: false
          });
          

          如果设置为false,它将强制浏览器不缓存请求的页面。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-11-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多