jQuery的ajax实现机制--源码解读

    xiaoxiao2021-04-17  36

    jQuery通过src这个属性,对于跨域请求使用scrip标签的src请求路径 jQuery对ajax事件的三种监听方式: 1.全局事件:$(document).on(‘ajaxStart’,func); 需要监听的全局事件: ajaxStart ajaxStop ajaxError ajaxComplete ajaxSuccess ajaxEnd

    jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ){ jQuery.fn[ type ] = function( fn ){ return this.on( type, fn ); }; }); //如果此时没有正在执行的请求,则触发ajaxStart事件 if ( fireGlobals && jQuery.active++ === 0 ) { jQuery.event.trigger("ajaxStart"); }   //使用event.trigger直接触发事件

    2.ajax设置回调项: beforeSend/complete/success/error

    $.ajax({url:'php.html',complete:func});

    3.deferred绑定方式

    $.ajax(...).done(func);

    序列化提交表单的函数: 表单序列换即是将需要提交的内容组合成类似:’key=value&key=value…’; 序列化用到的三个函数:

    jQuery.fn.serialize(); /* *序列化函数,筛选出表单中需要提交的数据并以序列化字符串方式返回 */ jQuery.fn.serializeArray(); /* * 筛选出表单中需要提交的数据并以key/value键值对的对象数组格式返回 * "{'name':'key','value':'select'{'name':'key','value':'select'}"; */ jQuery.param(serializeArray,traditional); /* *将key/value键值对的对象数组序列化'key=value&key=value' */

    jQuery.fn.serializeArray()三个步骤: 提取表单元素(map),过滤满足提交条件的表单元素(filter is(‘:disabled’) ),组合成key/value键值对的数组对象(map)

    jQuery.param:将key/value成作为URI组件编码(保证key和value不会出现特殊符号)使用&连接并将空白符替换成+

    如果value是函数,执行他得到真正的value value = jQuery.isFunction( value ) ? value() : ( value == null ? “” : value );

    把key和value作为URI组件编码,保证key和value不会出现特殊符号,即保证了“=”分割的正确性 s[ s.length ] = encodeURIComponent( key ) + “=” + encodeURIComponent( value ); s.join( “&” ).replace( r20, “+” );

    转载请注明原文地址: https://ju.6miu.com/read-673623.html

    最新回复(0)