不得不说Ajax确实是一个好东西,由它的出现使得WEB端新技术不断产生,Comet就属于这么一个技术,这个技术有时叫作反向AJAX,有时叫作服务器"推"技术,嗯,不要被牛逼闪闪的名词吓倒,其实没那么难。php
先看一下维基的解释:mysql
"Comet是一种用于web的推送技术,能使服务器实时地将更新的信息传送到客户端,而无须客户端发出请求,目前有两种实现方式,Ajax和iframe流。"web
——维基百科ajax
维基的解释比较绕,那咱们用人话来解释一下:sql
凡是由服务端(即服务器,再具体点就是你目前访问的那个文件)实时的,不间断的往客户端(浏览器)发送数据的技术,均可以称之为Comet技术,目前这个技术能够经过两个方式实现,Ajax和iframe流。segmentfault
仍是有些不明觉厉的话,看代码:浏览器
<?php $pdo = new PDO('mysql:dbname=test;host=127.0.0.1','root','root'); $resource = $pdo->query('select * from t1'); $result = $resource->fetchall(); while (true) { if ($result) { echo '往服务器发数据' ; print_r($result); }else{ } } ?>
将这段代码运行起来,就是一个最最最简化版的Comet技术。服务器
想象一下,当服务器运行这段代码的时候,服务器是否是像吃炫迈同样一块儿像客户端(浏览器)发送数据?并且是根本停不下来那种,这就叫作Comet,也叫做服务器"推",也叫反向ajax。fetch
前台请求的代码若是是iframe,那就叫作iframe流,若是是ajax请求,那就叫作ajax 轮询/长轮询。spa
内什么,你还问我Comet是啥?Comet就是服务器一直像客户端发送数据呀!
下面是Comet具体的技术实现:
用大白话揭开Ajax长轮询(long polling)的神秘面纱
原文:https://segmentfault.com/a/1190000005032941