>백엔드 개발 >PHP 튜토리얼 >辛星浅析php中coment技术的实现

辛星浅析php中coment技术的实现

WBOY
WBOY원래의
2016-06-23 13:27:421207검색

       第一,何谓推送技术

       随着人们对web越来越熟悉,人们希望web应用可以像本地应用一样可以实时的接收消息,于是也就有了所谓的"推送技术"。也就是我们所说的Server Push,也就是"服务器推技术",它的典型范例就是聊天、消息提醒、交友网站中使用比较频繁,成为实时应用中的一个热点问题。

       第二,传统实现(拉取技术)

       有一个很类似的实现机制,也就是传统的ajax,它是每隔一段时间去服务端拉取一次信息,但是这种方式会特别消耗资源。它需要时时刻刻去问服务器是否可以请求到数据,而且实时性很差,因为我们通常是过一段时间去请求一次数据的。

      第三,另一种实现(推送技术)

       显然使用定时拉取的方式是可以的,但是它会特别消耗服务器资源,因此我们需要另一种实现方式,它就是我们所说的推送技术,其实它只是看上去有点像推送技术,它在实质上仍然是一次拉取,只是这次拉取的时间变得很长很长,服务器端可以不断的吐出东西来。

      下面是三种常见的实现技术:

      (1)ajax长轮询。所谓ajax长轮询,它的本质仍然是一次拉取,它也是一种很不错的push实现方式,它会那种ajax短轮询会减少很多不必要的请求,因此它不论在开销还是在实时性上,都更好一些。它的实现机制是客户端发起一个ajax请求,服务端将请求搁置起来,直到到了超时时间或者说有了数据后返回,而客户端则等待ajax返回后处理数据,然后发起下一个ajax请求。

     (2)使用frame长连接。对于框架下的长连接,最大的一个问题就是如果框架在载入,那么浏览器就好像一直显示"载入中",处理问题上不如不适用frame方便。

    (3)使用flash或者html5  websocket,不过这两种的支持均不是特别特别靠谱,因为总是面临用户的浏览器不支持的情况,此时我们应该回退到更加兼容和大众的技术上去实现。

    (4)使用经典框架,其实我们需要遇到的问题,早就有很多人已经遇到并且解决了,我们首先需要知道的是他们是如何解决这些问题的,然后我们才能提出更优秀的解决方案。

     

     最后,附上ibm的一篇文章,传送门:http://www.ibm.com/developerworks/cn/web/wa-lo-comet/


版权声明:本文为博主原创文章,未经博主允许不得转载。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.