zoukankan      html  css  js  c++  java
  • IE浏览器关于ajax的缓存机制

      IE浏览器对于同一个URL只返回相同结果。因为,在默认情况下,IE会缓存ajax的请求结果。对于同一个URL地址,在缓存过期之前,只有第一次请求会真正发送到服务端。大多数情况下,我们使用ajax是希望实现局部刷新的,所以这就牵扯到一个改进的问题。

      如果想每次都获取到最新数据,我们只需保证每次传入的URL不一样。最简单的方法就是通过给url拼接参数。利用math函数的random()方法生成随机数。

      比如访问百度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("myDiv").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("myDiv").innerHTML=xmlhttp.responseText;
        }
      }
  • 相关阅读:
    HDU 2955 Robberies(01背包)
    HDU 2602 Bone Collector(01背包)
    HUST 1352 Repetitions of Substrings(字符串)
    HUST 1358 Uiwurerirexb jeqvad(模拟解密)
    HUST 1404 Hamming Distance(字符串)
    HDU 4520 小Q系列故事――最佳裁判(STL)
    HDU 2058 The sum problem(枚举)
    【破解】修改程序版权、添加弹窗
    HDU 1407 测试你是否和LTC水平一样高(枚举)
    HDU 1050 Moving Tables(贪心)
  • 原文地址:https://www.cnblogs.com/shaokai7878/p/9511685.html
Copyright © 2011-2022 走看看