速度问题!

嗨,我需要在网站上解决与Ajax相关的问题的帮助. 我已经编码了一个活动用户列表,该列表在线显示会员和客人. 我敢肯定,您以前都看过活动用户列表,例如本论坛底部的一个,但是使用Ajax我创建了一个,而无需您刷新页面. 一切都很好,除了它导致我的网站经常冻结. 我已经考虑过删除它,但是我必须有一个定期无聊的活跃用户列表,所以我希望有人可以帮助我加快速度并阻止冻结发生. 我不确定的一件事是是ajax还是造成这种情况的PHP. 无论如何,这是我的代码:

选择 | 换行 | 行号
  1. function Active (){
  2.  
  3.     self.status = "Sending request"
  4.  
  5.       initialize();
  6.       request.onreadystatechange=function(){
  7.  
  8.             if(request.readyState == 4){
  9.  
  10.                   var active = document.getElementById('active');
  11.                   active.innerHTML = request.responseText 
  12.  
  13.             }
  14.  
  15.       }
  16.  
  17.     var infoStr = "cmd=" + encodeURIComponent(escape('active'));
  18.     var url = "ajaxrequest.php";
  19.  
  20.     request.open('POST',url, true);
  21.     request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  22.     request.send(infoStr);
  23.  
  24.     var delay = 20000;
  25.     var timerID = setInterval("Active()", delay);
  26.  
  27. }

该功能在页面加载上运行,然后在此之后每10秒运行. 这是PHP: [PHP] $ time_formatted = date(" h:i:s",time()); $ result = mysql_query("从active delete where tumeout'$ time_formatted'"); $ result = mysql_query("从tumeout'timeout'$ time_formatted''中删除'"); $ result = mysql_query("按时间desc从活动顺序中选择 *"); while($ row = mysql_fetch_array($ result)){ switch($ row ['memberType']){ 默认: $ link_class ='main_class'; $ image ='/images/icons/user_online.png'; 休息; 案例"头管理": $ link_class ='admin_class'; $ image ='/images/icons/admin_online.png'; 休息; 案例"主持人": $ link_class ='Mederator_Class'; $ image ='/images/icons/moderator_online.png'; 休息; 案例"管理员": $ link_class ='admin_class'; $ image ='/images/icons/admin_online.png'; 休息; 案例"主持人": $ link_class ='Mederator_Class'; $ image ='/images/icons/moderator_online.png'; 休息; 案例"站点测试人员": $ link_class ='tester_class'; $ image ='/images/icons/tester_online.png'; 休息; }?> "> "> "> $ time = $ row ['time']; $ formatted_time = date(" h:i",strtotime(" $ time")); echo $ formatted_time; ?> } //更新活动用户 if(@$ _ session ['loggedin'] =='true'){ $ loginname = $ _session ['loginname']; $ memberType = $ _session ['memberType']; $ ip = $ _server [" remote_addr"]; $ result = mysql_query("从active中select * where loginname ='$ loginname'"); if(mysql_num_rows($结果) $ query ="插入活动( 登录名, 时间, 暂停, ip, 会员类型 ) 值( '$ loginname', curtime(), addtime(curtime(),'00:10:00'), '$ ip', '$ membertype' ); $ result = mysql_query($ query); }别的{ $ result = mysql_query("更新Active SET TIME = CURTIME(),TIMEOUT = ADDTIME(CURTIME(),'00:10:00')loginName ='$ loginName'") 或死(mysql_error()); } }别的{ $ ip = $ _server [" remote_addr"]; $ result = mysql_query(" select *从guests where ip ='$ ip'"); if(mysql_num_rows($结果) $ query ="插入客人( ip, 暂停 ) 值( '$ ip', addtime(curtime(),'00:10:00') ); $ result = mysql_query($ query); }别的{ $ result = mysql_query("更新guests set timeout = addtime(curtime(),'00:10:00')其中ip ='$ ip'") 或死(mysql_error()); } } $ result = mysql_query("从访客中选择 *"); $ GEETS_NO = mysql_num_rows($ result); echo'guests:'.$ geres_no.''; [/php] 如果您可以在Ajax或PHP中看到任何可能导致这种冷冻pleae的东西,请告诉我. -谢谢

# 回答1

欢迎来到TSDN! setInterval应该在功能之外. 不能每分钟而不是每20秒更新一次吗?

标签: Javascript

添加新评论