AJAX轮询问题 - 阻止或频繁?

Fen*_*ton 6 ajax polling ajax-polling

我有一个依赖于非常"实时"数据的Web应用程序 - 所以如果有变化,它需要每1秒更新一次.

我想知道以下解决方案的优点和缺点是什么.

解决方案1 ​​ - 轮询很多

所以每1秒,我向服务器发送一个请求并获取一些数据.一旦我获得了数据,我会等待1秒再重复一遍.如果州改变并采取适当的行动,我会检测到客户端.

解决方案2 - 阻止很多

所以我向服务器发起一个请求,在30秒后会超时.服务器通过每秒检查一次来监视服务器上的数据.如果服务器注意到数据已更改,则会将数据发送回客户端,客户端会采取相应的操作.

脚本

实质上,数据的大小相当小,但是根据实时事件以随机间隔进行更改.问题是,Web UI将在2,000个实例的区域中运行,因此我每秒有2,000个来自UI的请求,或者我有2,000个长时间运行的请求,最多需要30秒?

非常感谢帮助和建议,特别是如果您在类似的卷下使用AJAX请求.

zer*_*kms 2

对于这种情况,一种常见的解决方案是使用静态 json 文件。当数据更改时,服务器端脚本会更新它们,并且它们由快速、轻型网络服务器(如 nginx)提供服务。由于文件是静态的且很小 - 网络服务器将以非常快的方式在缓存中执行此操作。