zoukankan      html  css  js  c++  java
  • Jquery Ajax学习实例7Ajax所有过程事件分析示例

    一、Ajax所有过程事件分析

       JQuery在执行Ajax的过程中会触发很多事件。
       这些事件可以分为两种事件,一种是局部事件(Local),一种是全局事件(Global)。
       局部事件:可以通过$.ajax来调用,你某一个Ajax请求不希望产生全局的事件,则可以设置global:false。
       全局事件:跟click等事件类似,可以绑定到到每一个DOM元素上。
       这些事件的按照事件的触发顺序如下介绍:

     

    局部事件(Local) 全局事件(Global)
    ajaxStart 全局事件
    开始新的Ajax请求,并且此时没有其他ajax请求正在进行。
    beforeSend 局部事件
    当一个Ajax请求开始时触发。如果需要,你可以在这里设置XHR对象。
    ajaxSend 全局事件
    请求开始前触发的全局事件。
    success 局部事件
    请求成功时触发。即服务器没有返回错误,返回的数据也没有错误。
    ajaxSuccess 全局事件
    全局的请求成功。
    error 局部事件
    仅当发生错误时触发。你无法同时执行success和error两个回调函数。
    ajaxError 全局事件
    全局的发生错误时触发。
    complete 局部事件
    不管你请求成功还是失败,即便是同步请求,你都能在请求完成时触发这个事件。
    ajaxComplete 全局事件
    全局的请求完成时触发。
    ajaxStop 全局事件
    当没有Ajax正在进行中的时候,触发。
    注:除了ajaxStart和ajaxStop之外,其他的事件都有3个参数
    event, XMLHttpRequest, ajaxOptions
    第一个是事件,第二个是XHR对象,第三个参数最有用,是当时调用这个ajax的时候的参数。
    对于ajaxError,还有第四个参数thrownError,只有当异常发生时才会被传递。

    二、Ajax所有过程事件示例

    2.1、HTML代码

          <div>

                <input type="button" onclick="BtnSpareClick();" value="PartEvents" />
                <input type="button" onclick="BtnGlobalClick();" value="GlobalEvents" />

          </div>

           <div id="Result">Result</div>
           <div id="Process">Process</div>

    2.2、Jquery Ajax脚本 

    局部事件(Local)实例 全局事件(Global)实例

      <script language="javascript" type="text/javascript">
                $.ready(function BtnSpareClick() {
                    $.ajax({
                        type: "get",
                        url: "http://www.cnblogs.com/windy2008/rss",
                        data: {},
                        global: false,
                        beforeSend: function(data, status, settings) {
                            $("#Process").text("Part请求开始前");
                            alert($("#Process").text());
                        },
                        success: function(data, status, settings) {
                            $("item", data).each(function(i, domEle) {
                                $("#Result").append("<div>" + $(domEle).children("title").text() + "</div>");
                            });
                            $("#Process").text("Part请求成功时");
                            alert($("#Process").text());
                        },
                        complete: function(data, status, settings) {
                            $("#Process").text("Part请求完成时");
                            alert($("#Process").text());
                        },
                        error: function(data, status, settings) {
                            $("#Process").text("Part请求错误时");
                            alert($("#Process").text());
                        }
                    });
                });

    </script>

     <script language="javascript" type="text/javascript">

     $.ready(function BtnGlobalClick() {
                    $.get("http://www.cnblogs.com/windy2008/rss", {}, function(data, status, settings)

    {
                        $("item", data).each(function(i, domEle) {
                            $("#Result").append("<div>" + $(domEle).children("title").text() + "</div>");
                        });
                    });
                    $("#Process").ajaxStart(function() {
                        alert($(this).text());
                        $(this).text("开始新的Ajax请求");
                    });
                    $("#Process").ajaxStop(function() {
                        $(this).text("当没有Ajax正在进行中的时候");
                        alert($(this).text());
                    });
                    $("#Process").ajaxSend(function() {
                        $(this).text("请求开始前");
                        alert($(this).text());
                    });
                    $("#Process").ajaxSuccess(function() {
                        $(this).text("请求成功");
                        alert($(this).text());
                    });
                    $("#Process").ajaxComplete(function() {
                        $(this).text("请求完成时");
                        alert($(this).text());
                    });
                    $("#Process").ajaxError(function() {
                        $(this).text("请求错误时");
                        alert($(this).text());
                    });
                });
            </script>

    出处: http://www.cnblogs.com/windy2008

  • 相关阅读:
    转载:SQL server2005 里面没有management studio!下载SQL开发版本
    LInux、Ubuntu、win7、win8纯净版 镜像包链接地址 收集
    [转]Lucene经验总结 (转注:较旧,但有干货)
    几篇调试IIS内存过高或CPU过高的好文章
    Web应用程序
    使用ASP.NET State Server实现多应用程序间共享Session State
    [转]使用visual studio进行web应用程序性能测试
    [转] ASP.NET WEB API程序在VS启动或发布到IIS后启动后发生
    [转]优化Redis内存的9个要点
    [转]使用Memcached的8个要点
  • 原文地址:https://www.cnblogs.com/windy2008/p/1691662.html
Copyright © 2011-2022 走看看