《JavaScript DOM 编程艺术》小结(二)

《JavaScript DOM 编程艺术》(第2版)【 0501—0510 】

Ajax

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>AJAX Example</title>
    </head>
    <body>
        <div id="new"></div>        
        <script>

            // getHTTPObject()
            function getHTTPObject(){
                if(typeof XMLHttpRequest == "undefined"){
                    XMLHttpRequest = function(){
                        try { return new ActiveObject("Msxml2.XMLHTTP.6.0"); }
                            catch (e) {}
                        try { return new ActiveObject("Msxml2.XMLHTTP.3.0"); }
                            catch (e) {}
                        try { return new ActiveObject("Msxml2.XMLHTTP"); }
                            catch (e) {}
                        return false;
                    }
                }
                return new XMLHttpRequest();
            }

            function getNewContent(){
                var request = getHTTPObject();
                if(request){
                    request.open( "GET", "example.txt", true );
                    request.onreadystatechange = function(){
                        if(request.readyState == 4){
                            console.log("#### Response Received ####");
                            var para = document.createElement("p");
                            var txt = document.createTextNode(request.responseText);
                            para.appendChild(txt);
                            document.getElementById("new").appendChild(para);
                        }
                    };
                    request.send(null);
                }else{
                    alert("no support XMLHttpRequest");
                }
                 console.log("#### Function Done ####");
            }

            // addLoadEvent函数
            function addLoadEvent(func){
                var oldonload = window.onload;
                if(typeof window.onload != 'function'){
                    window.onload = func;
                }else{
                    window.onload = function(){
                        oldonload();
                        func();
                    }
                }
            }

            addLoadEvent(getNewContent);

        </script>
    </body>
</html>

XMLHttpRequest对象

  • 该对象充当着浏览器中的客户端与服务器之间的中间人角色。以往的请求由浏览器发出,而JavaScript通过这个对象可以自己发生请求,同时也自己处理响应。
  • open方法:用来指定服务器上将要访问的文件,指定请求类型,GET、POST、SEND。第三个参数用于指定请求是否以异步方式发送和处理。
  • ononreadystatechange是一个事件处理函数,它会在服务器给XMLHttpRequest对象送回响应的时候被触发执行。在这个处理函数中,可以根据服务器的具体响应做响应的处理。
        request.ononreadystatechange = doSomething;
  • readyState属性:
         0:表示未初始化
         1:表示正在加载
         2:表示加载完成
         3:表示正在交互
         4:表示完成
  • 访问服务器发送回来的数据要通过两个属性完成。一个是responseText属性,这个属性用于保存文本字符串形式的数据。另一个属性是responseXML属性,用于保存Content-Type头部中指定为“text/xml”的数据,其实是一个DocumentFragment对象。
  • 异步性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值