为什么需要异步请求的事件循环(例如,AJAX长轮询)

Aar*_*ken 2 ajax event-loop long-polling

我知道使用普通的线程网络服务器(例如Apache)进行AJAX长轮询是不好的设计......但我真的不明白为什么.

是因为每个longpolling请求比正常请求花费的时间要多得多(从而占用处理器)?如果是这种情况,那么线程是否真的需要花费很多开销才能在使用之前保持闲置一段时间?

Kar*_*tan 7

只是为了澄清一下,AJAX轮询是指客户端javascript发出的AJAX请求没有立即完成.相反,服务器等待,直到它想要将回复推送到客户端,然后使用已经打开的AJAX上下文来执行此操作.(对?)

在处理每个连接自己的线程的Web服务器上,该打开的连接将导致为网站上的每个客户端创建一个线程.线程将保持运行,直到客户端关闭连接.当我说"运行"时,这只意味着线程存在并占用服务器资源; 它可能在sleep()或wait()函数中空闲.但它仍然消耗比基于事件的服务器中使用的系统资源多得多的系统资源.