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;
            }
        });
    }


相关文章
|
24天前
|
XML JSON 前端开发
什么是ajax,ajax有什么特点?
什么是ajax,ajax有什么特点?
|
3月前
|
XML 前端开发 JavaScript
什么是ajax,为什么使用ajax?
什么是ajax,为什么使用ajax?
19 0
|
XML Web App开发 前端开发
初识AJAX
XMLHttpRequest 对象
60 0
|
XML Web App开发 存储
ajax
ajax
91 0
|
Web App开发 安全 前端开发
ajax的使用
  如上一张表单提交,一般我们通常的做法是,form表单提交,方便快捷,提交以后就不用管了,是否完成以及完成以后做什么是提交以后的后台操作,form表单只负责提交过去。(一般后台在接收表单提交以后,根据验证以及数据流转结果给前台交互,常见的是 重定向)。
1117 0
|
XML JSON JavaScript
第20天,Ajax
AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML)。
913 0
|
Web App开发 XML JavaScript
|
Web App开发 前端开发 iOS开发
|
前端开发 JavaScript Ruby
ajax traditional
代码如下: $(function () { var s = Array("1", "2", "3"); var r = 213123132; $.
753 0