现在,天实时更新,其中有大用途最流行的网站常见。
- StackExchange
- Facebook的
- 推特
我想知道如何做这些“实时更新”工作? 我只是在寻找一个一般的鸟瞰视角。 我怀疑JS无法调用服务器每X秒的更新,然后追加,要在<ul>
从服务器发送一个通知去拉更多的内容?
将是巨大的,如果有一个简单的如何文章与演示解释呢?
现在,天实时更新,其中有大用途最流行的网站常见。
我想知道如何做这些“实时更新”工作? 我只是在寻找一个一般的鸟瞰视角。 我怀疑JS无法调用服务器每X秒的更新,然后追加,要在<ul>
从服务器发送一个通知去拉更多的内容?
将是巨大的,如果有一个简单的如何文章与演示解释呢?
堆栈溢出是利用网络套接字进行实时更新。 如果你把源代码(2012代码)一看,你会看到:
StackExchange.ready(function () {
StackExchange.realtime.init('ws://sockets.ny.stackexchange.com');
StackExchange.realtime.subscribeToInboxNotifications();
StackExchange.realtime.subscribeToReputationNotifications('1');
});
但需要注意的一些歌剧版本不支持WebSocket的。 ( 直到歌剧10.70 )
但是Facebook的似乎不使用网络插座,我认为他们只是用简单的XHR有一种被称为长轮询 ,该服务器持有的连接,直到有新的信息,然后响应该请求。 如果你打开了开发工具,你可以看到,总有它有悬而未决的状态一个请求。
这的确是,发送请求每〜60秒。
看来,Twitter的使用也为他们的“实时更新”简单XHR(1个分钟间隔)。
Facebook的使用long polling/Comet
。 因此,它使一个响应的连接,并等待,如果没有响应,然后超时并再次尝试。 超时是大约40秒。 这就是如何做最即时更新的。 但是他们使用的技术的组合。 更多关于长轮询这里。
http://en.wikipedia.org/wiki/Comet_(programming)