您现在的位置:文学鉴赏 > 儿童文学 > 正文

PHP-Push技术实现刷新功能-php进阶-PHP教程-幽默笑话

PHP-Push技术实现刷新功能-php进阶-PHP教程-幽默笑话

文章内容PHP-Push技术实现刷新功能修改时间:[2008/10/2006:30]阅读次数:[1043]发表者:[起缘]Serverpush前一段时间炒得很热的“推”技术,不过网上大部分都是cgi的资料,偶尔看到一个法国的网站上有这么个介绍,可惜法语看不懂,只能从他的程序中看懂点东西,现整理个例子出来大家学习一下。 可以用于聊天室的数据传输、网站上的新闻更新、等等各类更新频繁的页面。

以前做刷新主要通过页面上加标签。  METAHTTP-EQUIV=REFRESHCONTENT=time;URL=url或者使用javascript的timeout+reload,不过这种刷新的方法取决于时间的设定,无法连续的数据传输且时间不好确定。

采用了Serverpush的服务器在客户机做出一个请求后,和客户机建立一个永久的连接,然后服务器会根据客户机的请求不断地把数据包推向服务器。 那些你觉察不到的延迟会让你觉得服务器的响应和你的请求已经达到了同步的程度。 先来看一下例子再解释。

 :  php    set_time_limit(0);    $file="./";    $sep="gIrLsKiCkAsSiTsAySsOoNaTsHiRt";  if(ereg(".*MSIE.*",$HTTP_SERVER_VARS["HTTP_USER_AGENT"])){  //如果是ie浏览器,直接输出就退出,IE的不支持哦,我没试出来过    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");  //这里是关键哦,看看MIME类型说明  //你会明白  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);}(非常全面的一个php技术网站,有相当丰富的文章和源代码.)这就是一个永久执行的页面(网络不断的情况下),不断输出图片的内容,下面是调用的页面。 imgsrc=,然后打开你的netscape或其他非ie浏览器查看调用页面,好象没什么变化啊,别急,接着就是怎样变动这个图片了,写个另外的php页面来测试吧,比如弄2张图片按时间来覆盖(这个方法自己想,用拷贝覆盖也行,只要有变化)。 这时你就看到调用页面的图片自动更新了。 使用中你会发现个问题:怎么图片不自动更新了。 这是由于客户机在一段时间内没有对服务器发生请求,也就是某一段时间内没有新的内容向浏览器输入,可能发生连接超时现象。

什么办法解决呢?可以在执行页面中加个向浏览器发送一个空信号,类似ftp连接方式,上面页面中在do...while(1)间加个print();看完这个例子,应该知道怎么处理不断更新的内容了,关键在页面中的处理(可以是检查新的内容并输出),调用的时候可以有img、script、frame等等。

上一篇:女子偷情跟闺蜜显摆 事发被扫地出门ps4实况足球2017手柄设置
下一篇:没有了
回到顶部