zoukankan      html  css  js  c++  java
  • 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()获取时间戳)

  • 相关阅读:
    201671010146 2017-2 <表格监督>
    201671010146 2017-2 《Java学期末有感》
    201671010146 2017-2 《Java线程》
    201671010146 2017-2 《第十六周学习Java有感》
    201671010146 2017―2 《第16周学习java有感》
    201671010146 2017―2 《第十五周学习java有感》
    201671010146 2017-2 《java第十一章学习感悟》
    201671010146 2017-2 《第十章学习感悟》
    201671010146 2017―2 《第11周学习java有感》
    201671010146 2017-2 《java第八章学习感悟》
  • 原文地址:https://www.cnblogs.com/shangjun6/p/10535750.html
Copyright © 2011-2022 走看看