javascript之使用Ajax事件

XMLHttpRequest对象定义的事件:

abort——在请求被终止时触发(ProgressEvent);

error——在请求失败时触发(ProgressEvent);

load——在请求成功完成时触发(ProgressEvent);

loadend——在请求已完成时触发,无论成功还是发生错误(ProgressEvent);

loadstart——在请求开始时触发(ProgressEvent);

progress——触发以提示请求的进度(ProgressEvent);

readystatechange——在请求生命周期的不同阶段触发(Event);

timeout——如果请求超时则触发(ProgressEvent);

注:考虑到浏览器对其它事件的支持还不到位,readystatechange是目前唯一能可靠追踪请求进度的事件。

ProgressEvent对象定义的额外属性:

lengthComputable——如果能够计算数据流的长度则返回true;

loaded——返回当前已载入的数据量;

total——返回可用的数据总量;

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>上海远地资产管理有限公司</title>
    <meta name="author" content="jason"/>
    <meta name="description" content="上海远地资产管理有限公司(简称:远地资产),是一家专业的互联网金融服务平台."/>
    <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"/>
    <style type="text/css">
        table{
            margin:10px;
            border-collapse: collapse;
            float: left;
        }
        th,td{
            padding: 4px;
        }
        div{
            margin: 10px;
        }
    </style>
</head>
<body>
    <div>
        <button>Apples</button>
        <button>Cherries</button>
        <button>Bananas</button>
    </div>
    <div id="target">
        加载内容
    </div>
    <table id="events" border="1">

    </table>
    <script>
        //使用XMLHttpRequest定义的一次性事件
        var buttons=document.getElementsByTagName("button");
        for(var i=0;i<buttons.length;i++){
            buttons[i].οnclick=handleButtonPress;
        }
        var httpRequest;
        function handleButtonPress(e){
            clearEventDetails();
            httpRequest=new XMLHttpRequest();
            httpRequest.onreadystatechange=handleResponse;
            httpRequest.οnerrοr=handleError;
            httpRequest.οnlοad=handleLoad;
            httpRequest.onloadend=handleLoadEnd;
            httpRequest.οnlοadstart=handleLoadStart;
            httpRequest.οnprοgress=handleProgress;
            httpRequest.open("GET", e.target.innerHTML+".html");
            httpRequest.send();
        }
        function handleResponse(e){
            displayEventDetails("readystate("+ httpRequest.readyState +")");
            //处理响应
            if(httpRequest.readyState==4 && httpRequest.status==200){
                document.getElementById("target").innerHTML= httpRequest.responseText;
            }
        }
        function handleError(e){displayEventDetails("error",e);}
        function handleLoad(e){displayEventDetails("load",e);}
        function handleLoadEnd(e){displayEventDetails("loadend",e);}
        function handleLoadStart(e){displayEventDetails("loadstart",e);}
        function handleProgress(e){displayEventDetails("progress",e);}
        function clearEventDetails(){
            document.getElementById("events").innerHTML="<tr><th>Event</th><th>lengthComputable</th><th>loaded</th><th>total</th></tr>"
        }
        function displayEventDetails(eventName,e){
            if(e){
                document.getElementById("events").innerHTML+="<tr><td>"+eventName+"</td><td>"+ e.lengthComputable+"</td><td>"+ e.loaded+"</td><td>"+ e.total+"</td></tr>";
            }else{
                document.getElementById("events").innerHTML+="<tr><td>"+eventName+"</td><td>NA</td><td>NA</td><td>NA</td></tr>";
            }
        }
    </script>
</body>
</html>
Apples.html页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Apples</title>
</head>
<body>
<p>
    <img src="images/apple.png"/>
    苹果(Apple),是最常见的水果,[1] 苹果树属于蔷薇科,落叶乔木,叶椭圆形,有锯齿。
    其果实球形,味甜,口感爽脆,且富含丰富的营养,是世界四大水果之冠。苹果通常为红色,不过也有黄色和绿色。
    苹果是一种低热量食物,每100克只产生60千卡热量。苹果中营养成份可溶性大,易被人体吸收,故有“活水”之称,其有利于溶解硫元素,使皮肤润滑柔嫩.
</p>

</body>
</html>



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值