`
dacoolbaby
  • 浏览: 1267232 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

IE又一坑之IE缓冲Ajax请求结果

阅读更多

调试了半天,发现相同的URL请求是一样的结果,在FireFox和Chrome都没有这样的情况。

以为是兼容性问题导致的,发现并不是这样。

原来是IE的缓冲特征导致。

 

Refer to: http://www.cnblogs.com/quange/archive/2009/07/24/1529958.html

 

解决办法有如下几种:

      1、在服务端加 header("Cache-Control: no-cache, must-revalidate");(如php中)

  2、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0");

  3、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache");

  4、在 Ajax 的 URL 参数后加上 "?fresh=" + Math.random(); //当然这里参数 fresh 可以任意取了

  5、第五种方法和第四种类似,在 URL 参数后加上 "?timestamp=" + new Date().getTime();

  6、用POST替代GET:不推荐

 

1、加个随机数
      xmlHttp.open("GET", "ajax.asp?now=" + new Date().getTime(), true);

2、在要异步获取的asp页面中写一段禁止缓存的代码:
      Response.Buffer =True
      Response.ExpiresAbsolute =Now() - 1
      Response.Expires=0
      Response.CacheControl="no-cache"

3、在ajax发送请求前加上xmlHTTP.setRequestHeader("If-Modified-Since","0");可以禁止缓存
      xmlHTTP.open("get", URL, true);
      xmlHTTP.onreadystatechange = callHTML;
      xmlHTTP.setRequestHeader("If-Modified-Since","0");
      xmlHTTP.send();

 

 

 

 

本人最后使用随机数的方式解决了。

希望大家引以为鉴啊。。

分享到:
评论

相关推荐

    ASP中用ajax方式获得session的实现代码

    然而,问题在于使用Internet Explorer(IE)浏览器时,Ajax请求可能会使用缓存,导致即使Session有值,也总是返回旧的、未登录的状态(即`1`)。这是因为IE在处理相同URL的GET请求时,可能会重用之前缓存的响应,而...

    高性能网页开发新20条规则详解(一).pdf

    尽早清除缓冲区即是优化策略之一,其核心思想是在页面内容生成的同时就发送至客户端,而不是等到整个页面完成之后。这不仅可以减少用户等待时间,还能更快地展示部分内容,使得页面看起来加载得更快。然而,这一方法...

    HTTPAnalyzerFullV7.5.4.459 绿色版

    这对于理解网页加载过程,检查服务器交互问题,或者调试JavaScript和Ajax请求非常有用。 2. **缓冲区信息**:该工具可以显示网络传输过程中的缓冲区信息,即数据在发送或接收前暂存的情况。了解缓冲区的状态有助于...

    Web重点难点学习资料

    在AJAX请求中使用GET方法代替POST,可以提高响应速度,但在IE浏览器中需注意GET请求的URL长度限制。 Cookie的优化包括减小Cookie的大小和使用无域Cookie。每个客户端浏览器对Cookie的数量和大小有限制,因此应该...

    PHP程序员面试题

    二、Ajax缓存问题:Ajax请求有时可能不获取最新的后端数据,这通常是因为浏览器缓存了旧的响应。可以通过在Ajax请求中添加时间戳或者随机参数来强制浏览器每次都请求新的数据,例如在URL后面添加 `?t=()?>`。 三、...

    OnlineArkansas:在线阿肯色州 IEA GIS Web 门户

    在线阿肯色州IEA GIS Web 门户是一个基于JavaScript技术构建的地理信息系统(GIS)平台,旨在提供关于阿肯色州的地理、环境、经济等多方面数据的在线访问和分析服务。通过这个门户,用户可以方便地探索、查询、分析...

    asoft签到管理系统tykq3.5_build20110125

    14、修改在线更新版本对比代码段,修正了一个无外网连接时AJAX机制报错的BUG 15、修改了calendar.js,优化了日历选择控件样式和速度 16、修正了几处界面显示效果 17、在“私人定制界面”页面增加了“是否开启系统...

    模拟QQ截屏的ACTIVEX空间

    在IT行业中,模拟QQ截屏的ACTIVEX控件是一种技术解决方案,主要用于Web应用程序中实现用户界面的截图功能。ACTIVEX是微软开发的一种技术,它允许开发者创建可嵌入到网页中的小型程序,以便扩展浏览器的功能。在这个...

    当滚动条滚动到页面底部自动加载增加内容的js代码

    7. **性能优化**:为了避免频繁的AJAX请求,可以添加一个缓冲区,比如设置一个阈值,只有当用户距离页面底部一定距离时才发起请求。此外,可以使用`setTimeout`和`clearTimeout`来控制请求的触发,防止短时间内连续...

    学习javascript必须掌握的基础知识.docx

    14. **AJAX异步通信**:理解post和get的区别,知道如何发送和接收数据,以及编写AJAX请求的基本步骤。了解JSON数据格式和如何解析JSON。 15. **面向对象编程**:理解面向对象的概念,掌握构造函数、原型链、封装、...

    深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)

    例如,当执行长时间运行的任务时,可以通过在循环中适时调用这两个函数,让浏览器在任务进行过程中就能接收到部分结果,模拟出类似AJAX异步传输的效果。 然而,需要注意的是,不同的Web服务器和浏览器可能会有不同...

    HTML读取Excel表内容的js插件

    2. **读取数据**:通过`XLSX.read()`方法,你可以加载一个文件或数据缓冲区,并将其转换为工作簿对象。这个对象包含了所有工作表的数据,你可以进一步遍历获取所需的单元格值。 3. **HTML展示**:将Excel数据展示在...

    PHP实时显示输出

    3. **前端轮询**:在前端使用定时器每隔一段时间向服务器请求最新数据,这种方式适用于不需要频繁更新数据的场景。 通过以上方法和技术的应用,我们可以有效地实现在PHP中进行实时显示输出,提高用户的交互体验。这...

    学习javascript必须掌握的基础知识.pdf

    - Ajax编写步骤:创建XMLHttpRequest对象、设置请求方法、发送请求、处理响应。 - JSON数据的读取,如`JSON.parse()`。 通过掌握以上知识点,你可以构建扎实的JavaScript基础,为前端开发打下坚实的基础。在实践...

    Jquery响应回车键直接提交表单操作代码

    如文档内容所示,可以通过`keydown`方法来监听键盘事件,检查按键的keyCode值是否为回车键(keyCode为13),然后模拟提交按钮的点击事件,来执行Ajax请求。 2. keydown, keypress, keyup的区别:文档中提到了三个...

    orbital_objects:与Google的WebGL地球相遇,可视化卫星位置

    这涉及到网络请求(如 AJAX 或 Fetch API)和异步编程技术。 8. **源代码结构**: "orbital_objects-master" 文件夹很可能包含了项目的源代码,包括 HTML 文件(构建网页结构)、CSS 文件(定义样式)和 JavaScript ...

Global site tag (gtag.js) - Google Analytics