国产黄色免费网站,人人干人人干人人干,免费大黄网站在线看,国产情侣一区二区三区,99精品国产福利免费一区二区,国产亚洲成归v人片在线观看,伊人88

2023信創(chuàng)獨(dú)角獸企業(yè)100強(qiáng)
全世界各行各業(yè)聯(lián)合起來(lái),internet一定要實(shí)現(xiàn)!

PHP-Push技術(shù)實(shí)現(xiàn)刷新功能

2004-02-11 eNet&Ciweek

  Server push 前一段時(shí)間炒得很熱的“推”技術(shù),不過(guò)網(wǎng)上大部分都是cgi的資料,偶爾看到一個(gè)法國(guó)的網(wǎng)站上有這么個(gè)介紹,可惜法語(yǔ)看不懂,只能從他的程序中看懂點(diǎn)東西,現(xiàn)整理個(gè)例子出來(lái)大家學(xué)習(xí)一下??梢杂糜诹奶焓业臄?shù)據(jù)傳輸、網(wǎng)站上的新聞更新、等等各類更新頻繁的頁(yè)面。

  以前做刷新主要通過(guò)頁(yè)面上加標(biāo)簽。

   < META HTTP-EQUIV=REFRESH CONTENT="time;URL=url" >

  或者使用javascript的timeout+reload,不過(guò)這種刷新的方法取決于時(shí)間的設(shè)定,無(wú)法連續(xù)的數(shù)據(jù)傳輸且時(shí)間不好確定。采用了Server push的服務(wù)器在客戶機(jī)做出一個(gè)請(qǐng)求后,和客戶機(jī)建立一個(gè)永久的連接,然后服務(wù)器會(huì)根據(jù)客戶機(jī)的請(qǐng)求不斷地把數(shù)據(jù)包推向服務(wù)器。那些你覺察不到的延遲會(huì)讓你覺得服務(wù)器的響應(yīng)和你的請(qǐng)求已經(jīng)達(dá)到了同步的程度。

  先來(lái)看一下例子再解釋。

   img.php

    < ?php

      set_time_limit(0);

      $file = "./1.jpg";

      $sep = "gIrLsKiCkAsSiTsAySsOoNaTsHiRt";

    if(ereg(".*MSIE.*",$HTTP_SERVER_VARS["HTTP_USER_AGENT"])){

    //如果是ie瀏覽器,直接輸出就退出,IE的不支持哦,我沒試出來(lái)過(guò)

      header("Cache-Control: no-cache");

      header("Pragma: no-cache");

      header("Content-type: image/jpeg");

      header("Content-size: " . filesize($file));

      readfile($file);

    }else{

      header("Content-Type: multipart/x-mixed-replace; boundary=$sep");

    //這里是關(guān)鍵哦,看看MIME類型說(shuō)明

  //你會(huì)明白

    print "--$sep

  ";

    do{

      print "Content-Type: image/jpeg

  ";

      readfile($file);

      print "

  --$sep

  ";

      flush();

      $mt = filemtime($file);

      do{

        sleep (1);

        clearstatcache();

       }while($mt == filemtime($file));

    }while(1);

  }

  ? >

  這就是一個(gè)永久執(zhí)行的頁(yè)面(網(wǎng)絡(luò)不斷的情況下),不斷輸出圖片的內(nèi)容,下面是調(diào)用的頁(yè)面。,然后打開你的netscape或其他非ie瀏覽器查看調(diào)用頁(yè)面,好象沒什么變化啊,別急,接著就是怎樣變動(dòng)1.jpg這個(gè)圖片了,寫個(gè)另外的php頁(yè)面來(lái)測(cè)試吧,比如弄2張圖片按時(shí)間來(lái)覆蓋1.jpg(這個(gè)方法自己想,用拷貝覆蓋也行,只要1.jpg有變化)。這時(shí)你就看到調(diào)用頁(yè)面的圖片自動(dòng)更新了。

  使用中你會(huì)發(fā)現(xiàn)個(gè)問題:怎么圖片不自動(dòng)更新了。這是由于客戶機(jī)在一段時(shí)間內(nèi)沒有對(duì)服務(wù)器發(fā)生請(qǐng)求,也就是某一段時(shí)間內(nèi)沒有新的內(nèi)容向?yàn)g覽器輸入,可能發(fā)生連接超時(shí)現(xiàn)象。什么辦法解決呢?可以在執(zhí)行頁(yè)面中加個(gè)向?yàn)g覽器發(fā)送一個(gè)空信號(hào),類似ftp連接方式,上面頁(yè)面中在do...while(1)間加個(gè)print("");

  看完這個(gè)例子,應(yīng)該知道怎么處理不斷更新的內(nèi)容了,關(guān)鍵在img.php頁(yè)面中的處理(可以是檢查新的內(nèi)容并輸出),調(diào)用的時(shí)候可以有img、script、frame等等。詳細(xì)的其他使用方面請(qǐng)查看:http://www.npds.org/。

相關(guān)頻道: eNews

您對(duì)本文或本站有任何意見,請(qǐng)?jiān)谙路教峤唬x謝!

投稿信箱:tougao@enet16.com