作家
登录

Jquery Ajax学习实例7 Ajax所有过程事件分析示例

作者: 来源:www.28hudong.com 2013-03-30 01:45:29 阅读 我要评论

一、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.jb51.net/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.jb51.net/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>

  推荐阅读

  锋利的jQuery jQuery中的DOM操作

1 查找元素节点 var $x = $("selector").text() 2 查找属性节点 var $x = $("selector").attr("property") 3 创建节点 var $x = $("html") 4 插入节点 $("selector").append() 向每个匹配的元素内部>>>详细阅读


本文标题:Jquery Ajax学习实例7 Ajax所有过程事件分析示例

地址:http://www.17bianji.com/kaifa2/JS/26806.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)