我正在为我的网络项目开发新闻Feed模块。新闻提要活动(帖子,过滤器等)与Facebook几乎相似。我使用了分页模式,当用户向下滚动页面时(无限滚动),逐页初始化新闻(例如:每个滚动发布20个帖子)。
我想知道当你的一个朋友分享帖子时Facebook如何初始化当前新闻。 我想它使用一个触发器发送一个ajax请求,以获取新帖子是否存在。使用定时器触发器(具有javascript超时功能,每10秒发送一次ajax请求)对于此问题不是一个有效的解决方案。
有没有人对我有任何其他触发建议?
先谢谢。
答案 0 :(得分:0)
如果您要监控主页的网络活动,您会看到https://pct.channel.facebook.com/pull
的呼叫附加了一些独特的参数。在观看时你会发现呼叫的时间长度可变,从1秒到60秒不等。
这称为Long-Polling,服务器在此等待新信息可用于发回响应。同时,HTTP调用暂停,就好像端点正在加载一样。一旦服务器找到可用信息,它就会发送包含数据的响应,并关闭连接。然后,客户端在收到数据后重新打开与另一个HTTP调用的连接。