反向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学习系列中详细写出