AJAX-

简介: AJAX-

什么是AJAX

AJAX是一种用于创建快速动态网页的技术,可以在不重新加载整个网页的情况下,对网页的某部分进行更新

传统的网页(不使用AJAX)需要更新内容时,必须重载整个网页

生活中使用AJAX的应用案例:新浪微博,谷歌地图,开心网


创建XMLHttpRequest对象

XMLHttpRequest用于在后台与服务器交换数据。意思是可以在不重新加载整个网页的情况下,对网页的某部分进行更新

<script>
    function loadXMLDoc() {
        //创建XMLHttpRequest对象
        var xmlhttp;
        if(window.XMLHttpRequest){
            //IE+,firefox,chrome,Opera,Safari 浏览器执行代码
            xmlhttp = new XMLHttpRequest();
        }else{
            //IE6,IE5 浏览器执行代码
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
        }
    }
</script>


向服务器发送请求

发送需求时,通常使用XMLHttpRequest对象的open()和send()方法:

xmlhttp.open(“Get”,“ajax_info.txt”,true);

xmlhttp.open(“POST”,“/try/ajax/demo_post.php”,true);

xmlhttp.send();

open()第一个参数:其中Get和POST比较,get更简单也更快,在多数情况都能使用

第二个参数:url服务器上的文件,url参数是服务器上文件的地址,文件可以是任意类型的文件

第三个参数:true或false 异步 ajax指是异步js和XML

XMLHttoRequest对象如果要用AJAX的话,其open()方法中必须为true


        xmlhttp.onreadystatechange=function () {
            if(xmlhttp.readyState == 4 && xmlhttp.status ==200){
                document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET","/try/ajax/ajax_info.txt",true);
        xmlhttp.send();


AJAX-服务器 响应

服务器响应:如果获取服务器响应,使用XMLHttprequest对象和responseText或responseXML

如果来自服务器响应并非XML,使用responseText属性,返回字符串形式的响应

<script>
    function loadXMLDoc() {
        //创建XMLHttpRequest对象
        var xmlhttp;
        var txt,x,i;
        if(window.XMLHttpRequest){
            //IE+,firefox,chrome,Opera,Safari 浏览器执行代码
            xmlhttp = new XMLHttpRequest();
        }else{
            //IE6,IE5 浏览器执行代码
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
        }
        xmlhttp.onreadystatechange=function () {
            if(xmlhttp.readyState == 4 && xmlhttp.status ==200){
                document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
                xmlDoc = xmlhttp.responseXML;
                txt="cd_catalog.xml ";
                x = xmlDoc.getElementsByTagName("ARTIST");
                for(i = 0;i<x.length;i++){
                    txt = txt+x[i].childNodes[0].nodeValue +"<br>";
                }
                document.getElementById("myDiv").innerHTML = txt;
            }
        }
        xmlhttp.open("GET","cd_catalog.xml" ,true);
        xmlhttp.send();
    }
</script>


AJAX-onreadystatechange事件

当请求被发送到服务器时,我们需要执行一些基于响应的任务,readyState改变时,就会触发onreadystatechange事件


readyState属性存有XMLHttpRequest状态信息

onreadystatechange 存储函数,每当readyState属性改变时,就会调用该函数

readyState 存有XMLHttpRequest的状态,从0-4发生变化

0:请求未初始化 1 :服务器链接已建立

2:请求已接受 3:请求处理中

4:请求已完成,且响应已就绪

status 200:”OK“ 404:未找到页面

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


使用回调函数:如果网站上存在多个AJAX任务,应该为创建XMLHttpRequret对象编写一个标准的函数,并为每个AJAX任务调用该函数

   function loadXMLDoc(url,cfunc){
        if(window.XMLHttpRequest){
            xmlhttp = new XMLHttpRequest();
        }else{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = cfunc;
        xmlhttp.open("GET",url,true);
        xmlhttp.send();
    }
    function myFunction(){
        loadXMLDoc("/try/ajax/ajax_info.txt",function () {
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
                document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
            }
        });
    }


相关文章
|
6月前
|
XML JSON 前端开发
什么是ajax,ajax有什么特点?
什么是ajax,ajax有什么特点?
49 0
|
6月前
|
XML JSON 前端开发
什么是ajax
什么是ajax
82 0
|
前端开发 UED
Ajax的使用
Ajax的使用
|
2月前
|
JSON 前端开发 JavaScript
|
5月前
|
XML JSON 前端开发
快速了解AJAX
快速了解AJAX
|
6月前
|
JSON 前端开发 JavaScript
实现ajax
实现ajax
34 0
|
6月前
|
XML 前端开发 JavaScript
AJAX
AJAX(Asynchronous JavaScript and XML)是一种异步的Web开发技术,它可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。AJAX的核心是XMLHttpRequest对象,它使得JavaScript可以发送HTTP请求并处理响应。
40 2
|
XML JSON 前端开发
Ajax:加强
Ajax:加强
35 0
|
XML 前端开发 JavaScript
|
XML 前端开发 JavaScript