在他们的实验性研究中,作者们在一个利用COMET推送方式实现(Dojo的Cometd库)的AJAX应用和一个纯拉取方式的应用之间,对数据一致性、服务器性能、网络性能以及数据遗失进行了比较。
他们总结说:
“...如果我们想要高数据一致性和高网络性能,我们就应该选择推送方式。但是,推送会带来一些扩展性问题;服务器应用程序CPU使用率是拉取方式 的7倍。根据我们的结果,服务器性能会在350-500个用户时趋于饱和。对于更大数量的用户,负载均衡和服务器集群技术就在所难免了。
使用拉取方式,要想达到完整的数据一致性以及很高的网络性能是很困难的。如果拉取的时间间隔大于数据更新的时间间隔,就会发生一些数据的遗失。而如果小于数据更新的时间间隔,网络性能就会受到影响。拉取方式只有在拉取时间间隔等同于数据更新时间间隔时,才会恰到好处。但是,为了达到那样的目标,我们就需要提前知道准确的数据更新时间间隔。然而,数据更新的时间间隔很少是静态不变并可以预知的。这使得拉取方式只有在数据是根据某种特定模式发布的情况才 有用。”
一些其他Comet Ajax服务器推送模型的实现:
*
Orbited :一种开源的分布式Comet服务器
*
AjaxMessaging :Ruby on Rails的Comet插件
*
Pushlets :一个开源框架,可以让服务器端java对象推送事件到浏览器端javascript,java applet,或者flash应用程序
*
Lightstreamer :提供基于AJAX-COMET模式的HTTP流的商业实现
*
Pjax :Ajax的推送技术
Ajax推送与拉取方式的优缺点
最新推荐文章于 2022-06-18 13:01:32 发布
本文对比了基于COMET的推送方式与纯拉取方式在数据一致性、服务器及网络性能等方面的表现。研究发现,推送方式能提供更好的数据一致性和网络性能,但服务器CPU使用率较高且扩展性受限;拉取方式难以同时保证数据完整性和高性能。
5343

被折叠的 条评论
为什么被折叠?



