ajaxStart()与ajaxStop() | ajaxSend()与ajaxComplete() | ajaxError()

《1》

ajaxStart() 设置当前第一个AJAX请求开始时执行的处理函数。

ajaxSend()  设置在AJAX请求被发送前执行的处理函数。

ajaxComplete() 设置当AJAX请求完成(无论成功或失败)时执行的处理函数。

ajaxStop()    设置当前最后一个AJAX请求结束时执行的处理函数。

<html>
<head>
    <title></title>
    <script src="jquery-1.11.2.js"></script>
</head>
<body>
    <label for="UserId">请输入用户的ID编号:</label><input type="text" id="UserId" name="UserId" style="width:20px" />
    <input type="button" id="btnClick" value="提交" />
    <div id="loadMes" style="display:none">我正在努力加载中哦.....</div>
    <div id="loadData"></div>
</body>
</html>
<script type="text/javascript">
    $(function () {
        $("#btnClick").click(function () {
            var id=$("#UserId").val();
            $.get("loadHandler.ashx", { id: id }, function (data, status, jsXHR) {
                $("#loadData").text(data);
            }).error(function (XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.statusText) }).success(function (data,status,jsXHR) { alert(status) });
        });

        //--------------------------ajaxStart()与ajaxStop()这两个全局事件必须绑定在document元素上。

        //在Ajax异步发送请求时,遇到网速比较慢的时候,就会出现请求比时间较长的问题,用户等的不耐烦就会关闭页面。而如果在请求期间能给用户一些提示。比如:正在努力加载中... 那么用户可能会等久一点,体验就业好一些了。

        //jquery提供了两个全局事件,ajaxStart()和ajaxStop() 这两个全局事件,只要用户触发了Ajax,请求开始(仅仅是准备开始请求,还未完成请求)那么就会触发ajaxStart()这个事件。  当用户请求结束的时候就会触发ajaxStop()事件

        $(document).ajaxStart(function () { $("#loadMes").show(); }).ajaxStop(function () { $("#loadMes").hide(); alert("加载完毕") });

        //当然我们也可以分开来写

        $(document).ajaxStart(function () {alert("我是start")});
        $(document).ajaxStop(function () { $("#loadMes").hide(); alert("请求完毕") })

        //----------------ajaxSend()与ajaxComplete()这两个全局事件必须绑定在document元素上。

        //ajaxSend()函数用于设置当AJAX请求即将被发送时执行的回调函数。(它比ajaxStart()稍微慢一点。一般而言,连续执行多个AJAX请求,只有其中的第一个AJAX请求会触发ajaxStart事件。等到所有AJAX请求执行完毕后,再次连续执行多个AJAX请求,还是只有其中的第一个AJAX请求会触发ajaxStart事件。 )

        //ajaxComplete()函数用于设置当AJAX请求完成(无论成功或失败)时执行的回调函数。 

        $(document).ajaxSend(function () { $("#loadMes").show(); }).ajaxComplete(function () { $("#loadMes").hide(); })

        //----------------------ajaxError()这个全局事件只能绑定在document元素上()

        //这是一个全局AJAX事件函数,用于为任何AJAX请求的ajaxError事件绑定事件处理函数

        $(document).ajaxError(function (event, jsXHR, settings, errorType) {
            //第一个参数(事件对象)
           // alert(event.type); //打印出:ajaxError    即:触发的事件
            //alert(event.target); //打印出:[object HTMLDocument]   即:触发事件的元素

            //第二个参数
            alert(jsXHR.statusText);  //第二个参数是一个XMLHttpRequst对象

            //第三个参数
            //for (var a in settings)
            //{
            //    document.write(a + "<br/>") //通过打印得知:其实这个settings就是ajax里面的属性值 比如 url, type,async,dataType,success等这些东西
            //}

            alert(settings.url); //打印出:loadHandler.ashx?id=v  即:发生错误的请求url
            alert(settings.type);//打印出:GET   即:发生错误的请求的请求方式

            //第四个参数 (错误描述)
            alert(errorType); //打印出:Internal Server Error :即发生错误的类型 ,服务器错误
        })
    })
</script>



时间: 2024-08-23 23:09:13

ajaxStart()与ajaxStop() | ajaxSend()与ajaxComplete() | ajaxError()的相关文章

Jquery工作常用实例--ajaxStart与ajaxStop(ajaxComplete)

Jquery中当一个Ajax请求启动时,并且没有其他未完成的Ajax请求时,将调用ajaxStart()方法.同样,ajaxStop()方法则是在所有Ajax请求都完成时调用.这些方法的参数都是一个函数,这个函数将在事件发生时被调用. 使用这些方法的每一步是获取一个页面元素的引用.然后就可以在这个元素上调用ajaxStart()和ajaxStop()方法. 使用语法: ("#loading").ajaxStart(function(){  $(this).show(); //callb

ajaxStart与ajaxStop

Jquery中当一个Ajax请求启动时,并且没有其他未完成的Ajax请求时,将调用ajaxStart()方法.同样,ajaxStop()方法则是在所有Ajax请求都完成时调用.这些方法的参数都是一个函数,这个函数将在事件发生时被调用. 使用这些方法的每一步是获取一个页面元素的引用.然后就可以在这个元素上调用ajaxStart()和ajaxStop()方法. 使用语法: ("#loading").ajaxStart(function(){  $(this).show(); //callb

【锋利的jQuery】中全局事件ajaxStart、ajaxStop不执行

最近一直都在研究[锋利的jQuery],确实是一本好书,受益匪浅.但由于技术发展及版本更新等原因,里面还是有些坑需要踩的. 比如:第六章七节中提到的全局事件ajaxStart.ajaxStop照着案例敲结果并不会执行. 在查阅资料后,发现原来在jquery1.9+版本以后,ajax全局事件需绑定到document对象上才能触发. 下面是各版本不同写法: <html> <head> <meta charset="utf-8"> <style>

ajaxStart()和ajaxStop()方法

ajaxStart()和ajaxStop()方法是绑定Ajax事件.ajaxStart()方法用于在Ajax请求发出前触发函数,ajaxStop()方法用于在Ajax请求完成后触发函数.它们的调用格式为: $(selector).ajaxStart(function())和$(selector).ajaxStop(function()) 其中,两个方法中括号都是绑定的函数,当发送Ajax请求前执行ajaxStart()方法绑定的函数,请求成功后,执行ajaxStop ()方法绑定的函数. 例如,

27.使用ajaxStart()和ajaxStop()方法

ajaxStart()和ajaxStop()方法是绑定Ajax事件.ajaxStart()方法用于在Ajax请求发出前触发函数,ajaxStop()方法用于在Ajax请求完成后触发函数.它们的调用格式为: $(selector).ajaxStart(function())和$(selector).ajaxStop(function()) 其中,两个方法中括号都是绑定的函数,当发送Ajax请求前执行ajaxStart()方法绑定的函数,请求成功后,执行ajaxStop ()方法绑定的函数. 例如,

jQuery使用ajaxStart()和ajaxStop()方法

ajaxStart()和ajaxStop()方法是绑定Ajax事件.ajaxStart()方法用于在Ajax请求发出前触发函数,ajaxStop()方法用于在Ajax请求完成后触发函数.它们的调用格式为: $(selector).ajaxStart(function())和$(selector).ajaxStop(function()) 其中,两个方法中括号都是绑定的函数,当发送Ajax请求前执行ajaxStart()方法绑定的函数,请求成功后,执行ajaxStop ()方法绑定的函数. 例如,

jquery的ajax方法:ajaxStart()和ajaxStop()

ajaxStart()方法: 当AJAX请求开始时,显示加载中的提示. $("#divMessage").ajaxStart(function(){ $(this).show();  //显示元素 }); 当AJAX请求结束时,提示或显示某一信息. $("#divMessage").ajaxStop(function(){ $(this).html("已完成").hide(); });

Ajax开始执行时触发 ajaxStart() | Ajax 执行结束后触发 ajaxStop()

<1> <html> <head> <title></title> <script src="jquery-1.11.2.js"></script> </head> <body> <label for="UserId">请输入用户的ID编号:</label><input type="text" id="

jQuery 1.9+ ajaxStart事件无效,无法被触发的原因。

AJAX 事件需要绑定到document 在jQuery 1.9中, 全局的AJAX事件(ajaxStart, ajaxStop, ajaxSend, ajaxComplete, ajaxError, and ajaxSuccess) 只能在document元素上触发.修改AJAX事件监听程序到document元素上.例如,如果目前的代码看起来像这样: $(“#status”).ajaxStart(function(){ $(this).text(“Ajax started”); }); 修改成