Comet——隨著AJAX技術興起而產生的新技術

NO IMAGE

不得不說Ajax確實是一個好東西,由它的出現使得WEB端新技術不斷產生,Comet就屬於這麼一個技術,這個技術有時叫做反向AJAX,有時叫做伺服器”推”技術,嗯,不要被牛逼閃閃的名詞嚇倒,其實沒那麼難。

先看一下維基的解釋:

“Comet是一種用於web的推送技術,能使伺服器實時地將更新的資訊傳送到客戶端,而無須客戶端發出請求,目前有兩種實現方式,Ajax和iframe流。”

——維基百科

維基的解釋比較繞,那我們用人話來解釋一下:

凡是由服務端(即伺服器,再具體點就是你目前訪問的那個檔案)實時的,不間斷的往客戶端(瀏覽器)傳送資料的技術,都可以稱之為Comet技術,目前這個技術可以通過兩個方式實現,Ajax和iframe流。

還是有些不明覺厲的話,看程式碼:

<?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。

前臺請求的程式碼如果是iframe,那就叫做iframe流,如果是ajax請求,那就叫做ajax 輪詢/長輪詢。

內什麼,你還問我Comet是啥?Comet就是伺服器一直像客戶端傳送資料呀!

下面是Comet具體的技術實現:

Ajax輪詢——“定時的通過Ajax查詢服務端”

用大白話揭開Ajax長輪詢(long polling)的神祕面紗