Ajax的兼容及Ajax的缓存问题

时间:2019-03-15
本文章向大家介绍Ajax的兼容及Ajax的缓存问题,主要包括Ajax的兼容及Ajax的缓存问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

  Ajax的兼容:

  在ie 6 7 8 不支持XMLHttpRequest的对象;

  他的Ajax内置对象为ActiveXObject("Microsoft XMLHTTP")

  除了内置对象不一样外,剩下的都一样

  兼容性的处理方法:

  var http;

  if(window.XMLHttpRequest){

    http=new XMLHttpRequest;

  }

  else{

    http=new ActiveXObject("Microsoft XMLHTTP")

  }

  最流行Ajax的轻量级插件

  axios  (post()的方法,官网给的传参的方法是错的,应用字符串格式传)

  fetch插件

  字段:比较短的字符串/数字/关键字

  Ajax的缓存

  浏览器的特性:浏览器不管你请求了多少次,他都会把每次的请求当第一次请求;

  对于服务器来说,所有的请求都是第一次的,没有记忆功能(储存意识),这对于服务器来说是好事,对于客户来说就是坏事,就把这种解决的方式(记忆的能力cookie),给了客户端(浏览器)

  Ajax缓存的优势

  第一次请求的结果,会保存在缓存区,第二次相同请求的时候,直接在缓存区将数据返给,你不在向服务器请求了,增强了页面的响应速度和用户体验;

  缓存的缺点

  如果第二次请求的相似度过高,浏览器会认为是第一次请求的,就直接从缓存区拿数据,不向服务器请求占内存

  cache:储存;

  解决缓存的方法:

  在参数后面加随机数或加时间戳(前台用最多的方法);

  1.XMLHttpRequest.setRequestHeader("Cache-control","no-cache");

  2.在服务端加header("Cache-control:no-cache,must-revalidate");

  3.在Ajax发送请求前加上:

    XMLHttpRequest.setRequestHeader("If-modified-since","0");

  4.在Ajax的url参数后加上"?freash=zhang"+Math.random();

  5.第5种方法和第四种方法类似,在url参数后加上:

    "?timestamp="+new Date().getTime()    (解释:new Date(获取当前时间)  getTime()获取时间戳)