自动放弃:
在发起AJAX请求时,如上一请求未完成则自动放弃.
修改参数 isAbort = false 可关闭该项
AJAX请求队列:
依次执行一组 AJAX请求,前一个请求成功后,执行下一个
/** * ajax通信类 * 依赖 jQuery 1.6+ * 扩展jQuery的ajax 对象,用以实现 : * 1.继承上次请求的参数, * 2.如果上次请求未完成,自动放弃. * 3.ajax 队列讲求 * * by oTwo alxw4616@msn.com * v 1.0 2013年7月31日 * * 说明: * var db = new oTwo.DB(option) option:ajax常规设置 详见注释 * db.xhr jqXHR 浏览器的XMLHttpRequest对象的一个超集 * db.queueList array 请求队列(如果保存的话) * db.defaultAjaxOption Object ajax默认设置 * * .get(option,[isExtend],[isAbort]) 用以获取 GET 请求. * .queue(optionArr,[flag]) ajax队列请求 * .setDefault(option) 设置默认ajax 请求参数 * .send(option) 继承默认设置,发送请求. */ var oTwo = oTwo || {}; oTwo.DB = function(option) { this.xhr = {}; this.queueList = []; this.defaultAjaxOption = { url: "", type: "GET", data: "", dataType: "json", // 超时(毫秒) 当超时后,将执行.fail(), .done() 不会执行. timeout: "", //async:false 同步请求 async: true, // cache:false 不缓存此页面 , ture 缓存此页面 cache: false, //强制HTTP头 解决中文乱码 contentType: 'application/x-www-form-urlencoded; charset=utf-8' } option = $.extend(true,this.defaultAjaxOption, option); this.setDefault(option); this.ajaxOption =$.extend(true,{},this.defaultAjaxOption); } oTwo.DB.prototype = { /** * 用以获取 GET 请求.可通过 option 修改相关设置 * .get() 重复上次讲求 * * .get(option,[isExtend],[isAbort]) 新的请求 * @param Object option ajax设置参数 * ----请参考 http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings * @param boolean isExtend 继承上次请求的参数 * ---- 默认 true,如果为false,则关闭该功能. * @param boolean isAbort 在发起AJAX请求时,如上一请求未完成则自动放弃. * ---- 默认 true,如果为false,则关闭该功能. * * @return jqXHR $.ajax() 的返回对象,浏览器的XMLHttpRequest对象的一个超集. * ----其常用方法 * ----jqXHR.done(function(data, textStatus, jqXHR) {}); 请求成功 * ----jqXHR.fail(function(jqXHR, textStatus, errorThrown) {}); 请求失败 * ----jqXHR.always(function(data|jqXHR, textStatus, jqXHR|errorThrown) { });请求完成 * ---请参考 http://api.jquery.com/jQuery.ajax/#jqXHR */ get: function(option, isExtend, isAbort) { if (typeof option === "string") { option = { "url": option } }; //放弃上一个未完成的请求 if (this.xhr && this.xhr.done && isAbort !== false) { this.xhr.abort(); }; // ajaxOption 回复到默认设置 if (isExtend === false) { this.setDefault(); }; this.ajaxOption = $.extend(true,this.ajaxOption, option); this.xhr = this.send(this.ajaxOption); return this.xhr; }, /** * 内部方法请无视它 * 继承默认设置,发送请求. * @param Object option ajax设置参数 * @return jqXHR */ send: function(option) { option = $.extend(true, {},this.defaultAjaxOption, option); var xhr = $.ajax(option); return xhr; }, /** * .setDefault(option) * 设置默认ajax 请求参数 * @param Object option ajax设置参数 * @return oTwo.DB * * .setDefault() * 恢复到默认设置 */ setDefault: function(option) { if (!option) { this.ajaxOption = $.extend({}, this.defaultAjaxOption); return this; }; this.defaultAjaxOption = $.extend(true,{}, option); return this; }, /** * ajax队列请求 * .queue() * 获取当前队列 * * .queue(optionArr,[flag]) * @param array option 请求数组 * ---- $.extend(ajaxoption, {callback:function(data){return true}}); * ---- ajaxoption: ajax设置参数将单独继承 * ---- callback:请求成功后的回调函数.如callback返回false后续请求将被放弃. * ---- 如果请求不成功后续请求也将被放弃. * * @param boolean isSaveQueue 是否保存请求队列 * ---- 默认 true(保存) */ queue: function(queueList, isSaveQueue) { if (!queueList) { return; }; if (isSaveQueue === false) { this.queueList = queueList; }; if (queueList.length === 0) { return; }; var ss = queueList.shift(), self = this; this.send(ss.ajaxoption).done(function(d) { var isGoOn = ss.callback(d); if (isGoOn !== false) { self.queue(queueList, false); }; }); } }
相关推荐
其次详细讲解了jQuery的各种选择器、jQuery操作DOM的方法、jQuery中的事件与应用、jQuery中的动画和特效、Ajax在jQuery中的应用,以及各种常用的jQuery插件的使用方法和技巧,所有这些知识点都配有完整的示例(包括...
jquery plugin for ajax queue,jQuery Ajax队列扩展。 ####参数说明 $.ajaxQueuer([ajax队列], {配置}); 配置项(具有优先级): type String 请求方式,默认为GET async Boolean 是否为异步,默认为false,即...
JQuery扩展以及自动执行函数的应用 JQuery阻止事件发生 JQuery扩展 作业 第18周 内容概要 JS正则详解 JS正则详解之验证 组件BootStrap、EasyUI、JQueryUI 插件轮播 Django_Web框架引入 Django工程创建 Django目录...
使用jQuery扩展工具函数实现对字符串指定类型的检测 第10章 在指定的查找范围内获取DOM元素 选择器中含有空格符与不含空格符的区别 事件中的target方法优化冒泡现象 使用data()方法在元素上存取移数据 使用data...
由于jQuery 1.5的Ajax模块内置使用了延迟对象,因此现在通过jQuery编写Ajax程序将自动获得这一功能。 开发人员借此可以使用无法立即获得的返回值(如异步Ajax请求的返回结果),而且第一次能够附加多个事件处理器。 ...
9.2.1 浏览器的检测 9.2.2 数组和对象的操作 9.2.3 字符串操作 9.2.4 测试操作 9.2.5 url操作 9.3 工具函数的扩展 9.4 其他工具函数—$.proxy() 9.5 综合案例分析—使用jquery扩展工具函数实现对...
第13章将带领读者深入理解Ajax相关的概念,包括jQuery的延迟处理机制,从而实现等待数据在一段时间后可用时再对其进行处理。 附录A将帮助读者理解闭包——什么是闭包,怎么利用闭包。 附录B向读者介绍使用jQUnit库对...
一个gecco爬虫框架,简单易用,使用jquery风格的选择器抽取元素 支持爬取规则的动态配置和加载 支持页面中的异步ajax请求 支持页面中的javascript变量抽取 利用Redis实现分布式抓取,参考gecco-redis 支持结合Spring...
07 recv与recvfrom的区别及基于udp实现ntp服务 08 基于tcp实现远程执行命令 09 基于tcp实现远程执行命令测试结果 10 粘包现象 11 粘包解决方法 第31章 01 上节课复习 02 socketserver实现并发 03 socketserver模块...
我们还使用了一些流行的前端框架和库,如Bootstrap和jQuery,以加快前端开发的速度,并提供丰富的UI组件和交互效果。 我们的项目源码还使用了一些其他的技术和工具,以提高系统的性能和可靠性。我们使用了缓存技术来...
用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...
我们还使用了一些流行的前端框架和库,如Bootstrap和jQuery,以加快前端开发的速度,并提供丰富的UI组件和交互效果。 我们的项目源码还使用了一些其他的技术和工具,以提高系统的性能和可靠性。我们使用了缓存技术来...
jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...
jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...
jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...
jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...
file_queue_limit : 2, 上传队列数量限制,该项通常不需设置,会根据file_upload_limit自动赋值 flash_url : "http://www.swfupload.org/swfupload_f9.swf", Flash控件的URL flash_width : "1px", flash_...