本文共 1443 字,大约阅读时间需要 4 分钟。
/** * 模拟ajax的 script请求 * @param {[type]} options [description] * @return {[type]} [description] */ function createAjax(options) { if (typeof url === "object") { options = url; url = undefined; } options = options || {}; /** * 参数 * jQuery.ajaxSetup 是默认参数 * @type {[type]} */ var s = jQuery.ajaxSetup({}, options); // Deferreds // 异步机制 var deferred = jQuery.Deferred(); var completeDeferred = jQuery.Callbacks("once memory"); /** * 实际返回的ajax对象 * @type {Object} */ var jqXHR = {} // 把jqXHR对象转化promise对象,幷加入complete、success、error方法 deferred.promise(jqXHR).complete = completeDeferred.add; //别名 jqXHR.success = jqXHR.done; jqXHR.error = jqXHR.fail; // 增加回调队列 // complete: function() { // console.log('局部事件complete') // }, // error: function() { // console.log('局部事件error请求失败时调用此函数') // }, // success: function() { // console.log('局部事件success') // } for (i in { success: 1, error: 1, complete: 1 }) { jqXHR[i](s[i]); } function send(_, complete) { var script = jQuery("