<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 101,  comments - 29,  trackbacks - 0

    以聊天室為例子,說起寫聊天室,大家隨口都能說出個大概:

    即每隔一段時間向服務器異步請求更新,用四個字母代替之就是AJAX。

     

    其實我們轉念想想,我們使用AJAX的目的就是使頁面能實時地更新,倘若我們的動態頁面能夠實時地更新,我們干嘛還費這些周折?

     

    先看一個小試驗:

    復制代碼
    1 <?php 2 while(true){ 3         echo 'Hello'; 4         sleep (1000); 5 } 6 ?>
    復制代碼

    如果如我們所愿,則頁面將每隔一秒都會顯示一個‘hello’

     

    看到這,也許知道我們聊天室的消息顯示頁面該怎么寫了,請看偽代碼。

    復制代碼
     1 <?php  2 $currentData = getData();  3 while (true){  4       $differences=getData();  5       if ($differences!=$currentData){  6                    echo $differences;  7                    }  8       sleep (10000);  9 } 10 ?>
    復制代碼

    可惜光是這樣是不能成功滴,因為我們還沒考慮到php的緩存和緩沖問題。

     

    php默認會緩存內容,防止http報文的Header和Data分離。且php會緩沖頁面內容直至程序結束再將頁面輸出。

     

    知道原因就好辦了。好在php提供了關閉緩沖和緩存的方法。

    直接在前面加上

    1 output_buffering=0 2 ob_end_flush(); 3 set_time_limit(0);

     

    則變為:

    復制代碼
     1 <?php  2 output_buffering=0;  3 ob_end_flush();  4   5 while(true){  6         echo 'Hello';  7         sleep (1000);  8         flush(); //強制使PHP輸出  9 } 10 ?>
    復制代碼

    你會發現第一個顯示hello的已經成功了!

    我們的消息頁面就變為

    復制代碼
     1 <?php  2 output_buffering=0;  3 ob_end_flush();  4   5 $currentData = getData();  6 while (true){  7       $differences=getData();  8       if ($differences!=$currentData){  9                    echo $differences; 10                    flush(); 11                    } 12       sleep (10000); 13 } 14 ?>
    復制代碼

     

     

    但是在項目最終的實現上,客戶端也存在問題:

    有些瀏覽器也會在顯示之前,緩存接收到的內容。例如 Netscape 瀏覽器會在接受到換行或 html 標記的開頭之前緩存內容,并且在接受到 </table> 標記之前,不會顯示出整個表格。 

    IE甚至只有當接受到的256個字節以后才開始顯示該頁面,所以必須發送一些額外的空格來讓這些瀏覽器顯示頁面內容。

     

    至此我們已經用”服務器推“解決了的實時更新的問題。其他框架也與普通思路無異,就不再累述了。

     

    有興趣的同學可以著手寫一個了。呵呵。

     

    歡迎大家一起交流。

    posted on 2012-07-29 10:48 mixer-a 閱讀(1253) 評論(1)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 无码国产精品一区二区免费模式| 18禁网站免费无遮挡无码中文| 亚洲无线码在线一区观看| 中文字幕视频在线免费观看| 91亚洲精品麻豆| 全亚洲最新黄色特级网站 | 亚洲视频小说图片| 永久免费无码网站在线观看| 9i9精品国产免费久久| 亚洲国产日韩女人aaaaaa毛片在线| 国产免费观看a大片的网站| 暖暖免费在线中文日本| 亚洲色成人网站WWW永久四虎| 国产亚洲精品看片在线观看 | 免费h片在线观看网址最新| 黄色三级三级免费看| 亚洲中文久久精品无码1| 久久久青草青青国产亚洲免观 | 一本岛高清v不卡免费一三区| xxxx日本在线播放免费不卡| 亚洲精品亚洲人成在线播放| 亚洲精品国产精品乱码不99| 精品无码国产污污污免费| 99热在线精品免费播放6| 成年免费大片黄在线观看com| 亚洲AV无码一区二区三区在线| 国产V亚洲V天堂无码久久久| 国产大片免费观看中文字幕| 亚洲高清免费在线观看| 中文字幕在线免费播放| 免费激情网站国产高清第一页 | 国产免费A∨在线播放| 亚洲色偷偷偷综合网| 亚洲日本乱码一区二区在线二产线 | 国产在线观看无码免费视频| 朝桐光亚洲专区在线中文字幕| 亚洲国产av美女网站| 亚洲国产香蕉碰碰人人| 亚洲韩国精品无码一区二区三区| 免费观看亚洲人成网站| 日韩精品视频免费观看|