当前位置:错新网文章中心网站开发Php → PHP-Push技术实现刷新功能

PHP-Push技术实现刷新功能

减小字体 增大字体 作者:admin  来源:www.cuoxin.com  发布时间:2011-2-8 2:31:22

Server push 前一段时间炒得很热的“推”技术,不过网上大部分都是cgi的资料,偶尔看到一个法国的网站上有这么个介绍,可惜法语看不懂,只能从他的程序中看懂点东西,现整理个例子出来大家学习一下。可以用于聊天室的数据传输、网站上的新闻更新、等等各类更新频繁的页面。

以前做刷新主要通过页面上加标签。

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

或者使用javascript的timeout+reload,不过这种刷新的方法取决于时间的设定,无法连续的数据传输且时间不好确定。采用了Server push的服务器在客户机做出一个请求后,和客户机建立一个永久的连接,然后服务器会根据客户机的请求不断地把数据包推向服务器。那些你觉察不到的延迟会让你觉得服务器的响应和你的请求已经达到了同步的程度。

先来看一下例子再解释。

以下为引用的内容:

img.php

< ?php

set_time_limit(0);

$file = "./1.jpg";

$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);

}

? >

这就是一个永久执行的页面(网络不断的情况下),不断输出图片的内容,下面是调用的页面。,然后打开你的netscape或其他非ie浏览器查看调用页面,好象没什么变化啊,别急,接着就是怎样变动1.jpg这个图片了,写个另外的php页面来测试吧,比如弄2张图片按时间来覆盖1.jpg(这个方法自己想,用拷贝覆盖也行,只要1.jpg有变化)。这时你就看到调用页面的图片自动更新了。

使用中你会发现个问题:怎么图片不自动更新了。这是由于客户机在一段时间内没有对服务器发生请求,也就是某一段时间内没有新的内容向浏览器输入,可能发生连接超时现象。什么办法解决呢?可以在执行页面中加个向浏览器发送一个空信号,类似ftp连接方式,上面页面中在do...while(1)间加个print("");

看完这个例子,应该知道怎么处理不断更新的内容了,关键在img.php页面中的处理(可以是检查新的内容并输出),调用的时候可以有img、script、frame等等。详细的其他使用方面请查看:http://www.npds.org/。


本文引用网址:

在下列搜索引擎中搜索“PHP-Push技术实现刷新功能”的相关信息:

谷歌搜索 百度搜索 雅虎搜索 搜狗搜索 搜搜搜索 必应搜索 有道搜索
你可能还喜欢以下文章
  • 1中关村“艳照门” 前妻群发老公...
  • 2中关村艳照门小三刁黎黎资料遭...
  • 3中关村“小三门”艳照图片 小三...
  • 41月美网站访问量排名:谷歌居首...
  • 5苏紫紫形体艺术 苏紫紫全套照片...
  • 1如何做SEO才能让百度喜欢?
  • 2什么是子域名?什么是顶级域名...
  • 3值得关注的五个国外SEO博客
  • 4六大类:常用的SEO工具一览
  • 5给做英文站新人的一些seo建议
  • 1她的胸到底有多大
  • 2女医生给我的四次体检
  • 32011春晚搞笑点评及春晚对联
  • 42011年春节联欢晚会经典流行语...
  • 5为什么而读书?
  • 1shell经典实例分享
  • 2Linux中怎么修改系统时钟
  • 3Linux中的系统服务——Daemon浅...
  • 4linux中如何修改指定用户的密码...
  • 5Linux环境图形化VNC服务安装、...