ajax的事件返回机制,ajax_jquerys_事件机制分析-前端开发必知

原标题:ajax_jquerys_事件机制分析-前端开发必知

在实际的项目开发中,作为前端人员,平日接触最多就是对HTML元素操作和前端发请求去获取后端数据,由于浏览器兼容性和原生写法过于复杂,这时jQuery给我们提供了对发送请求的封装,那就是jQuery的ajax方法,非常的实用和方便。那有去了解过jQuery到底是怎么做的?其实jQuery就是通过事件原理来做的,下面源码时代Web前端培训讲师来对jQuery的ajax方法来做一些分析。

如下jQuery 3.0版本代码。

首先jQuery定义的有关请求的全局状态:

//jQuery开始声明了一个变量来表示是否支持AJAX

global: true;

// 再用一个active变量来记录未完成的ajax请求数量

active: 0,

//一旦有ajax方法被调用,马上通过fireGlobals标识

Var ajax=function()( fireGlobals = s.global;)

我们使用jQuery Ajax时都会分别对不同状态指定回调函数,那jQuery里面是如何来做的呢?

// 首先jQuery AJAX 定义了这六大事件

jQuery.each( [

"ajaxStart",//请求开始事件

"ajaxStop",//请求结束事件

"ajaxComplete",//请求完成事件

"ajaxError",//请求错误事件

"ajaxSuccess",//请求成功事件

"ajaxSend"//请求发生事件

], function( i, type ) {

jQuery.fn[ type ] = function( fn ) {

return this.on( type, fn );

};

} );

// 发送新请求时 acitve自增一次,表示有一个新请求,

并开始请求

if ( fireGlobals && jQuery.active++ === 0 ) {

jQuery.event.trigger( "ajaxStart" );

}

// 发送请求,调用XHR来做事。

if ( fireGlobals ) {

globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );

}

//根据请求状态(成功、失败)回调指定函数

if ( fireGlobals ) {

globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",

[ jqXHR, s, isSuccess ? success : error ] );

}

//请求完成

if ( fireGlobals ) {

globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );

}

// 整个请求结束后,active自减一次,标记已完成一个。

if ( !( --jQuery.active ) ) {

jQuery.event.trigger( "ajaxStop" );

}

}

如上就是对jQuery的Ajax有关事件方面的结束,希望对你学习Ajax有帮助。

原文链接:http://www.itsource.cn/web/news/5/20170418/1215.html返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值