在 Facebook 上。当有人向您发送消息时,您会收到通知。这是在用户不执行任何操作的情况下完成的。它是如何触发的?
我可以使用 jsp、jQuery - ajax 实现类似的功能吗?
这怎么可能。因为我通常根据按键或用户刷新浏览器时执行操作。您如何知道何时收到消息?
最佳答案
服务器有很多方法可以向客户端发送消息。一些是:
- “Comet”,其中
XmlHttpRequest
的onreadystatechange
用于允许服务器将事件、通知和其他实时数据“传输”到浏览器。现在已弃用此方法,但这是最兼容的方法。请参阅http://en.wikipedia.org/wiki/Comet_(programming )) - WebSockets,它允许兼容 HTML5 的浏览器和适当的 Web 服务器建立双向套接字。请参阅http://en.wikipedia.org/wiki/WebSockets
- 服务器发送的事件,例如 WebSocket,仅在某些浏览器中可用。与 WebSocket 不同,它们不需要专门的网络服务器,而只允许服务器将事件推送到浏览器,反之亦然。请参阅http://en.wikipedia.org/wiki/Server-sent_events
我建议使用 jQuery EventSource 插件,该插件在可用时使用服务器发送的事件,在不可用时,回退到 Comet:https://github.com/rwldrn/jquery.eventsource
关于jquery - Facebook 中的通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5777501/