首页 >

浅谈ajax的缓存机制—IE浏览器方面

web前端|js教程浅谈ajax的缓存机制---IE浏览器方面
IE浏览器,浏览器的缓存机制
web前端-js教程
这篇文章主要介绍了IE浏览器关于ajax的缓存机制,文中给大家提到了Ajax解决浏览器的缓存问题,解决方法有很多种。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。
php支付平台源码 微信,ubuntu tar.Z,tomcat7 超时时间,python爬虫怎么踩点,php登录成功怎样实现跳转,合肥seo优势lzw
IE浏览器对于同一个URL只返回相同结果。因为,在默认情况下,IE会缓存ajax的请求结果。对于同一个URL地址,在缓存过期之前,只有第一次请求会真正发送到服务端。大多数情况下,我们使用ajax是希望实现局部刷新的,所以这就牵扯到一个改进的问题。
iframe的源码,显示ubuntu版本信息,设置tomcat的编码机,爬虫表示什么,php商城哪个好,seo技术学乐云seolzw
如果想每次都获取到最新数据,我们只需保证每次传入的URL不一样。最简单的方法就是通过给url拼接参数。利用math函数的random()方法生成随机数。
php抽奖源码,vscode做测试,ubuntu维护模式修改密码,tomcat中端口,视频点播 sqlite,金权商战插件,前端框架调试工具,爬虫营地招聘信息,php 数组 去除,日照seo公司哪家好,远程上传网站源码大全,网页编辑 html,求一个简易的jsp论坛模板,jquery tab切换页面,作业管理系统论文,网站音乐程序模板下载lzw
比如访问百度www.baidu.com,我们就可以把地址写成www.baidu.com?t=Math.random();或者?t=new Date().getTime();

说到这里,不妨复习一下ajax的基本用法。

*Ajax创建对象:   

 var xmlhttp; if (window.XMLHttpRequest){  //IE7+, Firefox, Chrome, Opera, Safari    xmlhttp = new XMLHttpRequest();  } else{  //IE6, IE5    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");  }

*Ajax请求:

//GET请求:xmlhttp.open("GET","test1.txt",true);xmlhttp.send();//POST请求:xmlhttp.open("POST","demo_post.asp",true);xmlhttp.send();

GET 还是 POST?

与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。

然而,在以下情况中,请使用 POST 请求:

无法使用缓存文件(更新服务器上的文件或数据库)
向服务器发送大量数据(POST 没有数据量限制)
发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

*Ajax响应:

要获得服务器的响应,需要使用XMLHttpRequest 对象的 responseText 或 responseXML 属性。

ResponseText:获得字符串形式的响应数据。

document.getElementById(“myp”).innerHTML=xmlhttp.responseText;

ResponseXML:获得XML形式的响应数据。

如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析。

*Ajax – onreadystatechange : 

当请求被发送到服务器时,我们需要执行一些基于响应的任务。

每当 readyState 改变时,就会触发 onreadystatechange 事件。

在 onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。

当 readyState 等于 4 且状态为 200 时,表示响应已就绪:

xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200)  {  document.getElementById("myp").innerHTML=xmlhttp.responseText;  } }

补充:下面看下浅谈Ajax解决浏览器的缓存问题

Ajax能提高页面载入速度的主要原因是通过Ajax减少了重复数据的载入,也即在载入数据的同时将数据缓存到内存中,一旦数据被加载,只要没有刷新页面,这些数据就会一直被缓存在内存中,当提交的URL与历史的URL一致时,就不需要提交给服务器,也即不需要从服务器获取数据,虽然降低了服务器的负载,提高了用户体验,但不能获取最新的数据。为了保证读取的信息都是最新的,需要禁止其缓存功能。

解决方案有如下几种:

① 在Ajax发送请求前加上anyAjaxObj.setRequestHeader(“If-Modified-Since”, “0”)。

② 在Ajax发送请求前加上anyAjaxObj.setRequestHeader(“Cache-Control”, “no-cache”)。

③ 在URL后加上一个随机数:”fresh=” + Math.random();。

④ 在URL后加上时间搓:”nowtime=” + new Date().getTime();。

⑤ 如果是使用jQuery,则用$.ajaxSetup({cache:false})。这样页面的所有Ajax都会执行该语句而不需要保存缓存记录。

总结

以上所述是小编给大家介绍的IE浏览器关于ajax的缓存机制,希望对大家有所帮助。更多相关教学请访问AJAX基础视频教学,JavaScript视频教学,bootstrap视频教学!


浅谈ajax的缓存机制---IE浏览器方面
  • win10系统中的IE浏览器不见了怎么办
  • win10系统中的IE浏览器不见了怎么办 | win10系统中的IE浏览器不见了怎么办 ...

    浅谈ajax的缓存机制---IE浏览器方面
  • win7系统IE浏览器输入框无法输入文字怎么办
  • win7系统IE浏览器输入框无法输入文字怎么办 | win7系统IE浏览器输入框无法输入文字怎么办 ...

    浅谈ajax的缓存机制---IE浏览器方面
  • IE浏览器的无痕模式在哪里开启
  • IE浏览器的无痕模式在哪里开启 | IE浏览器的无痕模式在哪里开启 ...