我听说我可以使用Comet作为服务器推送技术以及我的 Ajax 代码来提高我的 Web 应用程序的性能。
Comet 技术有多成熟?
所有 Web 服务器、编程语言和浏览器都支持它吗?
使用 Comet 的缺点是什么?
我听说我可以使用Comet作为服务器推送技术以及我的 Ajax 代码来提高我的 Web 应用程序的性能。
Comet 技术有多成熟?
所有 Web 服务器、编程语言和浏览器都支持它吗?
使用 Comet 的缺点是什么?
它很成熟,尽管我认为您应该将其更多地视为一种技术而不是技术。
据我所知,所有 Web 服务器都支持它,但如果您正在构建 Comet 应用程序,则需要研究和配置您的特定 Web 服务器,因为对资源的需求有点不同。具体来说,将有更多同时打开的连接到您的服务器。在编程语言支持方面,如果您选择的服务器语言有任何阻塞或等待机制,您可以支持 server-push。所有浏览器也都支持它,因为从浏览器的角度来看,这只是一个需要很长时间才能返回的 http(s) 连接。
有几个缺点,在浏览器世界中,最大的可能是某些浏览器将特定 URL 的打开连接数限制为两个。因此,如果您有一个服务器阻塞连接打开等待一些推送的数据,您将只有一个连接可供浏览器从服务器获取数据。这可以通过将您的资源分散到几个二级域以允许浏览器打开更多连接来缓解。
Comet 实际上在 AJAX 大肆宣传之前就已经在使用:它只是一个旧想法的新名称。长期以来,人们一直在使用隐藏的 iframe 来模拟服务器推送而没有问题。