js+php长链接(思路)

test.php

<?
//设置当前脚本为无超时状态
set_time_limit(0);
//操作的文件名
$DATAFILE='dat.txt';
//保存当前时间
$time=time();
//用死循环持续检测文件
while(1){
  //判断文件存在  //判断文件修改 //输出文件内容并断开HTTP
  file_exists($DATAFILE) and filemtime($DATAFILE)>$time and die(file_get_contents($DATAFILE));
  //清空文件状态缓存
  clearstatcache();
  //等待1秒
  sleep(1);
};
?>

js

function polling(url){
  //创建IE兼容的XHR对象
  var xhr=window.XMLHttpRequest ?new XMLHttpRequest :new ActiveXObject("Microsoft.XMLHTTP");
  xhr.onreadystatechange=function(){
    if(xhr.readyState!=4)return;

    //把接收到的文字输出
    var div=document.createElement("div");
    div.appendChild(
      document.createTextNode(xhr.responseText)
    );
    document.body.appendChild(div);
    polling(url); //间接递归
  };
  xhr.open("GET",url,true);
  xhr.send();
};
polling("test.php");

Leave a Comment

电子邮件地址不会被公开。 必填项已用*标注