您如何模仿将数据推送到Web应用程序?

时间:2009-04-20 08:26:34

标签: ajax language-agnostic http web-applications networking

显然,您无法将数据推送到Web应用程序,因为HTTP在请求 - 响应循环中工作。

但是,您知道哪些黑客/方法可以模仿将数据推送给客户?

3 个答案:

答案 0 :(得分:7)

你可以使用所谓的Comet: http://en.wikipedia.org/wiki/Comet_(programming)https://stackoverflow.com/search?q=comet

基本上,浏览器中的javascript立即向服务器发出请求(使用XmlHttpRequest)。服务器在有一些数据要服务之前不会响应。

来自文章:

浏览器发出服务器的异步请求,可能会在响应之前等待数据可用。响应可以包含由客户端执行的编码数据(通常是XML或JSON)或javascript。在响应处理结束时,浏览器创建并发送另一个XHR,以等待下一个事件。因此,浏览器始终保持服务器的未完成请求,以便在每个事件发生时得到解答。

答案 1 :(得分:1)

在某些情况下,轮询,即以常规(短)间隔发送请求可能就足够了。但是上面给出的答案 - 彗星 - 就没有客户请求发送数据而言,与实际交易最接近。

答案 2 :(得分:1)

您仅限于使用HTTP进行轮询。其中一个早期的Netscape浏览器确实实现了HTTP push我似乎记得,回到本世纪初,但它没有得到任何结论。

您不能将原始套接字与Flash,Javascript / Xml,Silverlight一起使用。使用Java和Active-X,您可以,但您需要一个证书。 Quake Live显示了这一点,所有网络显然仍然是基于UDP的,但在IE或Firefox的浏览器插件中。

所以轮询,投票,民意调查。