jquery ajax不能多线程并发吗?

landry1234 2013-10-30 02:07:10

var timer;
var threadKey = Math.random().toString().replace("0.", "");//当前进程标识
//下面是查询执行进程的函数
function checkProgress() {
$.ajax({
type: "post",
url: "../../tools/data_copy.ashx?act=check_progress",
dataType: "json",
data: "threadKey=" + threadKey,
success: function (data) {
alert(data.msg);
if (data.msg == "1") {
$(".msg").html(data.msgbox);
}
},
error: function (data, status, e) { }
});
}
//每隔500毫秒查询一次执行状态
timer = setInterval("checkProgress()", 500)



$(function () {
var idlist = "<%=idlist %>";
//AJAX执行一个线程,该线程可能会耗时比较长,因此在执行过程中每隔500毫秒用checkProgress()函数查询一次执行进度,但经检测每次都要等这整个进程结束后checkProgress()才开始执行,是不是因为jquery的ajax模块不支持多线程并发呢?
$.ajax({
type: "post",
url: "../../tools/data_copy.ashx?act=copy_category&threadKey=" + threadKey,
dataType: "json",
data: "idlist=<%=idlist %>&random=" + Math.random(),
success: function (data) {
clearInterval(timer);
},
error: function (data, status, e) {
clearInterval(timer);
$(".msg").append("<br /><font color='red'>× 执行中出错,执行终止</fong>");
}
})
})
...全文
1252 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiqisweet 2016-06-03
  • 打赏
  • 举报
回复
引用 7 楼 chen_ya_ping 的回复:
js是个单线程的工作方式。所以ajax肯定不是多线程的。
js是单线程的,ajax的确是多线程的,可以同时从浏览器端请求多次,但事件状态变换后回调时要等待队列。
ark_yk 2013-10-31
  • 打赏
  • 举报
回复
没有听过ajax 多线程 到时听过异步
chen_ya_ping 2013-10-30
  • 打赏
  • 举报
回复
js是个单线程的工作方式。所以ajax肯定不是多线程的。
zkcq2004 2013-10-30
  • 打赏
  • 举报
回复
timer = setInterval("checkProgress()", 500) 放到success里面
landry1234 2013-10-30
  • 打赏
  • 举报
回复
有没有高人知道的啊
landry1234 2013-10-30
  • 打赏
  • 举报
回复
引用 3 楼 liuchaolin 的回复:
不是不能并发,是你的ashx不能同时响应或响应时间过长
这不可能啊,ashx和aspx一样啊,在服务端肯定是能同时响应很多个请求的
md5e 2013-10-30
  • 打赏
  • 举报
回复
不是不能并发,是你的ashx不能同时响应或响应时间过长
landry1234 2013-10-30
  • 打赏
  • 举报
回复
分两个文件我也试过了,效果一样,主要是触发多进程的js在同一个页面,他就不能并发
net_08 2013-10-30
  • 打赏
  • 举报
回复
因为你这两个请求都用了一个文件data_copy.ashx,你分两个文件就可以同时异步进去互不干扰。

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧