at.*_*at. 12 javascript ajax jquery javascript-events
我有许多异步AJAX调用,其结果将被处理.处理发生的顺序无关紧要,但结果需要一次处理一个.所以我想简单地做我的AJAX调用,他们只是把他们的结果放在一个队列中.然后应该在单个线程上处理该队列.这样,结果可以尽快一次处理一次.
最好的方法是什么?我正在使用jQuery,很高兴利用它为此提供的任何设施.
Jos*_*ton 25
异步并不意味着"多线程".在处理第一个单击处理程序之前,考虑连续触发的许多单击事件.一次只能处理一个操作,其他操作将等待执行.
像Javascript这样的事件驱动语言在队列的基础上运行.后台的Javascript本质上有一个巨大的队列,事件和异步响应被推入.完成特定的处理后,将处理队列中的下一个项目.
这些队列有时被称为"Runloops".Javascript将在无限循环中旋转,从队列中检索事件,处理它,然后返回队列进行另一项工作.
可以使用Web Workers在(较新的)Javascript版本中实现多线程,但这些是明确的选择.如果你有兴趣,请查看它们.
要回答你的问题,只需将回调附加到异步请求,即使在中途返回另一个响应,它也会完成处理.另一个响应将"等待"直到处理当前事件.
如果您唯一关注的是浏览器(因为您提到jQuery,我认为这是真的),您应该知道Javascript在浏览器中是单线程的.
| 归档时间: | 
 | 
| 查看次数: | 10845 次 | 
| 最近记录: |