原生态Ajax写法异步提交,巧妙利用innerHTML实现不清空原来内容追加请求结果

一、Ajax核心代码解析

            Ajax的调用方法可以通过onclick、onchange等鼠标和键盘的事件来触发。此处不做叙述。直接看Ajax的核心代码。

    <SCRIPT LANGUAGE="JavaScript">
    function showInfo(){
          var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");      

          xmlHttp.open("get","show",true);

     xmlHttp.onreadystatechange=function(){ 
    if(xmlHttp.readyState == 4){ 
    document.getElementById("infoDiv").innerHTML = xmlHttp.responseText; 
    }
     } 
    xmlHttp.send();
    }
    </SCRIPT>

 Msxml2.XMLHTTP是IE浏览器的内置的对象,该对象具有一步提交数据和获取结果的功能。

    如果不是IE浏览器,实例化方法如下。

<SCRIPT LANGUAGE="JavaScript">
          var xmlHttp = new XMLHttpRequest();
    </SCRIPT>

 如果需要在网页载入时运行该函数,可以使用JS的

  window.onload = function(){
          //.........
    }

 方法去加载Ajax。

xmlHttp.open("get","show",true);

//此处三个参数,get表示请求方式,有get、post两种选择。show是请求的目标 true表示使用异步提交,false是同步

 xmlHttp.onreadystatechange=function(){//.....}

//是回调函数,4代表完成状态,数据全部接收完成。

document.getElementById("infoDiv").innerHTML
此语句可以将内容写入到id为infoDiv的标签内,innerHTML会清空原来的内容。

xmlHttp.responseText

    此语句是请求的结果,表示xmlHttp从提交目标中得到的输出的文本内容。xmlHttp除了responseText属性外,还有一个属性:responseXml,表示从提交目标得到的xml个数的数据。

    infoDiv除了具有innerHTML属性外,还有innerText属性,表示显示内容时,不考虑其中的HTML标签,即将内容原样显示。

xmlHttp.send();
//是发送请求  如果是get方式,send可以没有参数,如果是post方式提交,参数通过send发送,不过即使是以post方式,也可以将参数附加在url后面进行请求。

    二、使用Ajax请求,很多时候想要保留标签原来内容,但innerHTML会把原来内容清空,怎么办呢?

    其实很简单,看这句话:

 document.getElementById("infoDiv").innerHTML = xmlHttp.responseText;

 这句话是把请求结果写入到infoDiv标签内,那么我们可不可以简单的把它看成一条赋值语句,然后修改为下面这样:

 document.getElementById("infoDiv").innerHTML =  document.getElementById("infoDiv").innerHTML + xmlHttp.responseText;


    事实上,是可以的,这样就可以保留以前的内容还在。请求的结果将显示在infoDiv标签的最后。

    那有时候我们需要对数据进行排序,请求的结果需要放最上边,这样又怎么办呢?

    这时候相信你的思路已经打开了。我们可以将加法顺序颠倒,这样就可以将结果追加的标签最上方。如这样:

 document.getElementById("infoDiv").innerHTML = xmlHttp.responseText + document.getElementById("infoDiv").innerHTML;


以上是本人学习Ajax的初期总结,本人是菜鸟,请各位大牛指教。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值