专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »PHP教程 » phparraypush:PHP-Push技术实现刷新功能 »正文

phparraypush:PHP-Push技术实现刷新功能

来源: 发布时间:星期一, 2009年1月12日 浏览:6次 评论:0
  Server push 前段时间炒得很热“推”技术不过网上大部分都是cgi资料偶尔看到个法国网站WebSite上有这么个介绍可惜法语看不懂只能从他中看懂点东西现整理个例子出来大家学习可以用于聊天室数据传输、网站WebSite上新闻更新、等等各类更新频繁页面

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

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

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

  先来看下例子再解释

  img.php

  < ?php
    _time_limit(0);
    $file = "./1.jpg";
    $sep = "gIrLsKiCkAsSiTsAySsOoNaTsHiRt";
  (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);
  }{
    header("Content-Type: multipart/x-mixed-replace; boundary=$sep");
  //这里是关键哦看看MIME类型介绍说明
  //你会明白
  pr "--$sep
";
  do{
    pr "Content-Type: image/jpeg
";
    readfile($file);
    pr "
--$sep
";
    flush;
    $mt = filemtime($file);
    do{
      sleep (1);
      clearstatcache;
     }while($mt filemtime($file));
  }while(1);
}
? >


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

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

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

  http://www.npds.org/

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: