| 
                        一、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>                         (编辑:91站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |