反向ajax又叫comet,server push,服務器推技術。
應用範圍:網頁聊天室,新浪,google mail 網頁聊天,都有用到
原理:一般而言,HTTP協議的特點,連接<->斷開
具體什麼時間斷開?
服務器響應content-length收到的指定length長度的內容時,也就就斷開了
在http1.1協議中,允許你不寫content-length,比如要發送的內容長度不知道時。
這時需要一個特殊的content-type:chunked
123H\r\n
123H個長度的內容傳輸給客戶端....
....
41H\r\n
瀏覽器繼續接受41H長度的內容,\r\n
0\r\n(服務器說內容發完了)
<?php
set_time_limit(0);
ob_start();
$pad=str_repeat(' ',4000);
echo $pad.'<br/>';
ob_flush();
flush();//把產生的垃圾立即送給瀏覽器頁面而不要等腳本結束再一起送
$i=1;
while($i++){
echo $pad.'<br/>';
echo $i.'<br/>';
ob_flush();
flush();//把產生的垃圾立即送給瀏覽器頁面而不要等腳本結束再一起送
sleep(1);
}
/*
* 思考:如果while循環中,不是1,2,3。。。
* 而是數據庫中記錄呢?
* 而是2人的聊天記錄呢?
* 這樣就達到,即時通信。
* 服務器端--不間斷--推送信息--->到客戶端
*
* */
?>
網頁聊天室的具體實現我會在ajax學習系列中詳細寫出