现在要在页面里刷新两个地方,一个是系统时间,1分钟一更新第二个是当有短消息的时候,显示到页面上。下面是我的代码,,为什么我在页面上调用以后,时间和短消息提示在同一处都出现了????另外,各位老师有没有调用ajax的通用函数~~  开发起来比较方便~~  我用的是php4代码如下:
////////////////////////////////////////////////////////////////////////
////////////////// 开始时就调用函数 ////////////////////////////////////
////////////////////////////////////////////////////////////////////////function addLoadEvent(func){
var oldonload = window.onload;
if(typeof window.onload !='function'){
window.onload = func;
}else{
window.onload = function(){
oldonload();
func();
}
}
}////////////////////////////////////////////////////////////////////////
////////////////// 创建ajax函数 ////////////////////////////////////////
////////////////////////////////////////////////////////////////////////function createXMLHTTP()
{
  var request;
  var browser = navigator.appName;
  //使用IE,则使用XMLHttp对象
  if(browser == "Microsoft Internet Explorer")
  {
    var arrVersions = ["Microsoft.XMLHttp", "MSXML2.XMLHttp.4.0",
      "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp","MSXML2.XMLHttp.5.0"];
    for (var i=0; i < arrVersions.length; i++)
    {
      try
      {
   //从中找到一个支持的版本并建立XMLHttp对象
        request = new ActiveXObject(arrVersions[i]);
        return request;
      }
      catch (exception)
      {
         //忽略,继续
      }
    }
  }
  else
  {
    //否则返回一个XMLHttpRequest对象
    request = new XMLHttpRequest();
    if(request.overrideMimeType)
    {
    request.overrideMimeType('text/xml');
   }
    return request;
  }
}////////////////////////////////////////////////////////////////////////
/////////////////////////// main.php时间 ///////////////////////////////
//////////////////////////////////////////////////////////////////////////请求函数
function makeRequest_time()
{
  var http_request_time = createXMLHTTP();
  http_request_time.open('GET', "include/ajax.php?time=now", true);
  http_request_time.onreadystatechange = processRequest_time;  //禁止IE缓存
  http_request_time.setRequestHeader("If-Modified-Since","0");
  //发送数据
  http_request_time.send(null);
  //每1分钟刷新一次页面
  setTimeout("makeRequest_time()", 1000*60);
}
//处理响应
function processRequest_time()
{
  if(http_request_time.readyState == 4)
  {
    if(http_request_time.status == 0 || http_request_time.status == 200)
    {
      var result = http_request_time.responseText;
      if(result=="")
      {
        result = "系统时间获取失败";
      }
      document.getElementById ("sysTimeShow").innerHTML=result;
    }
    //http_request_time.status != 200
    else
    {
      alert("请求失败!");
    }
  }
}////////////////////////////////////////////////////////////////////////
/////////////////////////// main.php短消息 /////////////////////////////
//////////////////////////////////////////////////////////////////////////请求函数
function makeRequest_message()
{
  var http_request_message = createXMLHTTP();
  http_request_message.open('GET', "include/ajax.php?message=new", true);
  http_request_message.onreadystatechange = processRequest_message;  //禁止IE缓存
  http_request_message.setRequestHeader("If-Modified-Since","0");
  //发送数据
  http_request_message.send(null);
  //每1秒刷新一次页面
  setTimeout("makeRequest_message()", 1000*1);
}
//处理响应
function processRequest_message()
{
  if(http_request_message.readyState == 4)
  {
    if(http_request_message.status == 0 || http_request_message.status == 200)
    {
      var result_message = http_request_message.responseText;
      if(result_message=="")
      {
        result_message = "读取失败";
      }
      document.getElementById("message").innerHTML=result_message;
    }
else
    {
      alert("请求失败!");
    }
  }
}
header("Content-Type:text/html;charset=gb2312"); if($time='now')//当前时间
{echo date("H:i", time()) ;} if($message='new')//短消息
{
$db=initdb();
$count_message_new=$db->getcount("SELECT * FROM `message` where `touser`='$username' AND `new` = '1' " );
echo "($count_message_new)";
}addLoadEvent(makeRequest_time);
addLoadEvent(makeRequest_message);<span id="sysTimeShow"></span>
<span id="message"></span>

解决方案 »

  1.   

    对了,我的两个 var http_request_message = createXMLHTTP();和var http_request_time = createXMLHTTP();
    都是写在function外面的~~ 呵呵。写在里面就什么也不显示了???还想问一下,为什么呢???谢谢各位老师哈~~~
      

  2.   

    你要是定义在函数内,那你在下面做接受处理的时候你是得不到http_request_message.readyState 和http_request_time.readyState 的值,应该所以应该设置成全局变量
      

  3.   

    如果没问题的话,应该在时间的地方显示时间,短消息的地方显示数字(比如当前没新消息就显示0)<span id="sysTimeShow"></span>
    <span id="message"></span>在这两个地方显示但是现在是在两个地方都显示"07:49 0"同时显示了????? 这是为什么呢?谢谢楼上老师~~  帮我看看哈~~~
      

  4.   

    ......呵呵,我发现是我的php的问题~~~  sorry~~~