现在,几乎所有流行的网站都采用了实时更新技术,尤其是那些用户量大的网站。
- StackExchange
我想知道这些“实时更新”是如何工作的?我只是想从一个鸟瞰的角度来了解一下。我怀疑JS不能每X秒调用服务器获取更新,然后将其附加到<ul>
中。是否从服务器发送通知以拉取更多内容?
如果有一篇简单的文章解释这个问题并带有演示,那就太好了。
现在,几乎所有流行的网站都采用了实时更新技术,尤其是那些用户量大的网站。
我想知道这些“实时更新”是如何工作的?我只是想从一个鸟瞰的角度来了解一下。我怀疑JS不能每X秒调用服务器获取更新,然后将其附加到<ul>
中。是否从服务器发送通知以拉取更多内容?
如果有一篇简单的文章解释这个问题并带有演示,那就太好了。
Stack Overflow正在使用Web Sockets进行实时更新。如果您查看源代码(2012年的源代码),您会看到:
StackExchange.ready(function () {
StackExchange.realtime.init('ws://sockets.ny.stackexchange.com');
StackExchange.realtime.subscribeToInboxNotifications();
StackExchange.realtime.subscribeToReputationNotifications('1');
});
看起来 Twitter 也使用简单的 XHR(1 分钟间隔)进行“实时更新”。
Facebook使用长轮询/彗星
。因此,它建立连接并等待响应,如果没有响应,则超时并再次尝试。超时时间约为40秒。这就是它实现大多数即时更新的方式。但是,他们使用了一系列技术。更多关于长轮询的信息请参见此处。