JQuery Ajax Pool
JQuery Ajax Pool
我正在开发一个单页应用程序,目前正在构建一个JQuery、ajax函数,用于执行所有调用。
对于一个典型的页面,我可能有3个ajax调用。我的想法是,如果用户的互联网在一个数组中保存这些ajax调用。然后做一个定时器,不断检查用户是否有互联网。一旦他们有了互联网,就可以打电话。因此,当用户离线时(除了检查互联网电话),并且一旦他们重新在线,就不会进行任何通话。所以在我之前的演讲中,我有这个。
beforeSend : function($xhr)
{
self.ajaxPool.push($xhr);
if(!self.validateConnection())
{
console.log(self.ajaxPool);
}
}
所以我的问题是,当我恢复连接,并通过数组循环到每个$xhr
对象时,我可以调用什么函数来说,"嘿,做你现在应该做的事"?例如$xhr.complete()
?我在池上做了一个控制台日志,当连接断开时查看对象,但它的任何功能看起来都不会起作用。
我会完全放弃beforeSend,因为你无论如何都在使用池,并做这样的事情。。。
//where you want to make your initial request somewhere in code
//do this INSTEAD of calling $.ajax(options)
ajaxPool.push(options);
//an interval to handle the queue
setInterval(function(){
//nothing in the pool so do nothing
if(ajaxPool.length < 1) return;
//not online so don't try to send
if(!validateConnection()) return;
//hey we're online lets make the ajax request
doAjax(ajaxPool.shift());
},200);
function doAjax(options){
//add call backs since you seem to be using a single call back
options.complete=function(data){ ... };
//do call
$.ajax(options);
}
你可以让它变得更加OOP,当你知道它没有被使用时,你可以暂停间隔,但我认为这传达了基本概念。
我一直在为我的RIA应用程序使用这个Offline JS。它对于您的离线场景来说非常可靠
- 监视查找失败的ajax请求
- 通过请求图像或假资源来确认连接状态
- 自动获取在连接断开时发出的ajax请求,并在连接恢复后重新生成这些请求
https://github.com/HubSpot/offline
相关文章:
- 无法在通过jQuery的ajax加载的页面中执行javascript
- 如何通过ajax刷新JSF填充的javascript变量
- 如何在php文件中获取$.post-ajax传递的值
- Replacing $ .ajax?
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- Ajax发布表单序列化,发布引号'
- 通过Ajax将JavaScript函数传递给PHP文件
- ajax请求的顺序总是不同的
- 可以't使用Polymer's的核心ajax
- Ajax Live搜索发布到Laravel视图
- Ajax聊天消息重复而不仅仅是更新
- 从控制器返回后Ajax启动事件激发
- PHP AJAX图片上传示例不上传
- 从ajax请求中获取javascript对象
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 如何在Javascript中解析AJAX数组的特定部分
- Ajax文件加载和<输入>文件加载
- Javascript/jQuery中的并行Ajax调用
- Ajax-如何获取数据
- JQuery Ajax Pool