2014-09-23 43 views
0

我知道JavaScript是单线程的。如果你有一个AJAX调用,那么它会被添加到消息队列中,并且JavaScript会在它可以处理的时候处理它。说我有这样的功能:AJAX服务器端处理能否并发运行?

function TestAjax 
{ 
    //AJAX asynchronous call 1 
    //AJAX asynchronous call 2 
    //AJAX asynchronous call 3 
} 

说上面的代码中增加了三个HTML表格的网页(每个函数添加一个表),那么我认为AJAX异步调用3可以生产出第一台即使它最后被添加到消息队列中。

我想了解三个调用是否可以同时运行,因为AJAX调用是在服务器上生成内容。

+0

当然,他们为什么不呢? – Bergi 2014-09-23 19:20:53

+0

@Bergi,我对异步代码,消息队列和JavaScript比较陌生。消息队列是否有单独的线程? – w0051977 2014-09-23 19:23:55

+0

想一想:有300万人试图访问你的网站,你有Apache + PHP(或者其他什么,它并不重要)。所有这些查询都会被同时回答吗?为什么不会AJAX电话呢? – tfrascaroli 2014-09-23 19:24:28

回答

2

是的,他们可以在同一时间运行,你可以体验“交错”的结果(如第二次完成之前)。这完全取决于服务器端需要多少处理。如果你的第二个调用是返回一个空字符串的函数,但是你的第一个调用查询一个大型数据库,你可以期望在你的数据库结果之前返回空字符串。

为什么你特别关心他们完成的顺序?

+0

谢谢,我不关心它。我只是想了解这个过程。 +1。 – w0051977 2014-09-23 19:31:16

+0

@ w0051977请记住点赞任何帮助你的答案,并接受最能回答你问题的答案。这有助于有相似问题的未来用户更轻松地找到最佳解决方案。 – 2015-12-29 13:50:22

+1

我是这个问题的两位选民之一。我最近更好地理解这个主题,我相信你的回答写得很好。因此,我现在将这个问题标记为已回答。感谢您的提醒。 – w0051977 2015-12-29 15:50:15