jQuery ajax队列怎样实现?第二个队列获取第一个队列的返回值 jquery ajax队列 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 需求不明确,如果是第一个ajax请求之后再执行第二个ajax请求,然后返回结果给第一个ajax,那么可以是$.ajax(url1,{ success:function(){ $.ajax(url2,{ async:false, success:function(){ } }) }}) 抱歉,知识浅薄,可能用错概念了。我是想实现: 可能有3、4个ajax请求,然而第2、3、4个请求,需求等一个数据出来后才能执行。 最外层的ajax并没有将async设置为false,怎么会阻塞浏览器呢?第一层的success事件中才进行了阻塞 那就在第1个ajax调用的success回调函数中去调用2、3、4就行了。你看只要结合具体实际机制,一下子就出来设计了。用不着被那些空洞模式名词而干扰沟通效率。 目前我就是这样实现的,哪如果有很多个这样的异步请求呢? 会把浏览器卡死你要确定调用时异步还是同步调用。另外javascript基本上是单线程的,就好像.net的“UI主线程”一样。所以执行耗时的函数操作就会“卡死”,跟ajax无关。要想让用户感觉流程一点,你就需要将耗时的函数操作中的内容拆成几十个、上百个小步骤,然后再 setTimeout 定时机制下去逐步实现。这样实际上是处理得更慢了,但是网页操作不卡了。 如果是因为你的代码执行的时间太长,这个跟ajax无关的。比如说,要对输入业务数据数组 arr[] 里边的内容进行处理,你可以写setTimeout(MyFunc(arr),1);MyFunc(arr){ if(arr.length()>0) { var x = arr.pop(); 处理任务(x); setTimeout(MyFunc(arr),1); }}这类代码。这里的arr也就是普通的参数,用不上高大上的“队列”概念,说成是“xxx数组”更能明白意思。 每次调用ajax的时候把调用函数push到一个Array中,然后在每次Ajax回调的时候Array.shift()执行 var _list = new Array(); _list.push(function () { alert('3'); }); _list.push(function () { alert('1'); }); _list.push(function () { alert('2'); }); _list.push(function () { alert('4'); });function _dequeue() { while (_list.length > 0) { _list.shift()(); } } C# Socket 异步接收问题 如何向串口写16进制数? sql通知怎么没有反映啊? 关于“精简框架”中的OpenFileDialog对话框 一次性删除datagrid里面选中的所有数据,怎么做? 救命啊,丢失的keyup事件。。 请问RPG游戏中一个人在地图上走。。。 关于ftp?(高手请进)50分相送 加急!!远程的在web服务器上建立虚拟目录并可以对其进行删除等操作!!up有分! c#中tcp连接服务监听可以用TcpListener(),那udp用什么监听? 进销存的数据存储问题 新手驾到 - -# 一个C#中没有解释的地方 求大神讲解
$.ajax(url1,{
success:function(){
$.ajax(url2,{
async:false,
success:function(){
}
})
}
})
抱歉,知识浅薄,可能用错概念了。我是想实现: 可能有3、4个ajax请求,然而第2、3、4个请求,需求等一个数据出来后才能执行。
那就在第1个ajax调用的success回调函数中去调用2、3、4就行了。你看只要结合具体实际机制,一下子就出来设计了。用不着被那些空洞模式名词而干扰沟通效率。
目前我就是这样实现的,哪如果有很多个这样的异步请求呢? 会把浏览器卡死你要确定调用时异步还是同步调用。另外javascript基本上是单线程的,就好像.net的“UI主线程”一样。所以执行耗时的函数操作就会“卡死”,跟ajax无关。要想让用户感觉流程一点,你就需要将耗时的函数操作中的内容拆成几十个、上百个小步骤,然后再 setTimeout 定时机制下去逐步实现。这样实际上是处理得更慢了,但是网页操作不卡了。
{
if(arr.length()>0)
{
var x = arr.pop();
处理任务(x);
setTimeout(MyFunc(arr),1);
}
}
这类代码。这里的arr也就是普通的参数,用不上高大上的“队列”概念,说成是“xxx数组”更能明白意思。
_list.push(function () { alert('3'); });
_list.push(function () { alert('1'); });
_list.push(function () { alert('2'); });
_list.push(function () { alert('4'); });function _dequeue() {
while (_list.length > 0) {
_list.shift()();
}
}