繁体   English   中英

Ajax简单问题

[英]Ajax simple question

关于ajax,我有一个非常简单的问题。 如果我想刷新网站的特定区域,我认为最好使用ajax。

但是,无论如何,除了让JavaScript定期检查服务器上的更改之外,服务器还会在给定事件发生时发送数据吗?

我想要的是客户端不需要定期发送请求,而是服务器只会将信息发送给客户端,而客户端又将具有某种事件侦听器。

提前致谢

因为http协议通过发送请求并从服务器接收响应来工作,所以无法完成此操作,因此服务器在没有收到请求的情况下无法响应。

是的,可以这样做。 它被称为“推送”或“推送流”。

这是一个提供此功能的网站: InstantPush 在他们的主页上有一个简短的报价:

“ InstantPush用于使网页和移动电话上线。当服务器端发生更改时,它们将立即实时更新。标准的网络通信使更新通过防火墙和代理。客户端没有任何模块!

InstantPush从2001年开始使用,直到“ Ajax发明”。 它可能是第一个Ajax Push Framework。

InstantPush引领了北欧市场。”

这是另一家提供这项技术的公司: LightStreamer 还有他们主页上的一句话:

“ Lightstreamer是一种可扩展且可靠的服务器,用于将实时数据推送到Rich Internet Applications

基于Comet和Real-Time Web范例,它将实时数据流传输到任何Web浏览器和客户端应用程序。 HTML,HTML5,AJAX,Flex,Silverlight,Java,.NET,iOS,Android和BlackBerry应用程序可以轻松地从Lightstreamer Server接收实时数据。

Lightstreamer已被用于许多关键任务生产系统,这些系统已证明其可扩展性,对网络的影响小,带宽管理,自适应流和其他高级功能。”

使用传统的HTTP是不可能的。 但是,您可以使用长时间轮询或其同级之一来模拟推送行为。

这确实是一个困难的问题,服务器在没有请求的情况下将数据广播/推送到客户端。 HTTP是无状态的,即使浏览器是注册的客户端,它仍然需要通过代码或通过诸如元刷新的某些标签进行请求。 新的但仍不太稳定的选项是Comet或websockets。

答案是彗星,而不是websockets。 对的,这是可能的。 另一种方法是使用浏览器插件。

这是Push Technology维基页面上的例外

* Apple Push Notification Service
* BOSH
* Comet
* Client–server model
* File transfer
* Pull technology
* Push Access Protocol
* Push e-mail
* Reverse Ajax
* Streaming media
* WebSockets

否,这无法完成。 服务器的工作是提供请求的结果,这是服务器必须首先开始的结果。

我认为websockets是解决之道,但尚不支持所有浏览器。

我将它们与红宝石和铬一起使用,非常简单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM