搜尋

首頁  >  問答  >  主體

新鲜事提示的问题

像豆瓣这类网站的新鲜事提示是需要刷新页面的

像segmentfault 知乎的提示是不用刷新就提示的

这是在不断的进行接口访问还是怎么。。。

代言代言2944 天前1055

全部回覆(1)我來回復

  • 大家讲道理

    大家讲道理2016-11-07 14:19:36

    消息模块,也就是消息的推送,外国人叫他Comet,指一种从服务器向页面推送数据的技术。

    有两种实现方式,轮询和流。

    1.轮询

    轮询分长轮询和短轮询,其他几位回答都是短轮询,比较占游览器和服务器资源。

    长轮询是游览器发起一个请求后,服务器一直保持打开,直到有数据发送,游览器接收到数据后,再发起一个请求。怎么实现的呢?jsp我不了解,反正php有sleep神函数。

    2.流

    流的实现方式大致是服务器接到请求后 先输出一些数据到缓存,然后立刻刷新,等几秒再刷新,游览器只要监听readystatechange事件及检测readState的值是否为3。具体请自行谷歌,毕竟不是一个兼容的解决方案。

    另 不考虑兼容的话 还有2个更好的解决方案 SSE 和 web socket.


    回覆
    0
  • 取消回覆