现在准备做个聊天的功能,在网上看了下,说用 推技术啊。
但是不懂。用ajax 轮询的话 效率很低啊。。。
------解决方案--------------------
------解决方案--------------------
人少的时候,ajax轮循明显浪费资源,没新的聊天信息却在那边一直查啊查的。
人多的时候,comet建了比较多的长连接,估计有点难承受,主要是服务器那边的优化了。
这边是简单的例子……只是讲讲原理……
前端是普通的ajax,后端是死循环
- HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <div id="test"></div> <script type="text/javascript"> function test(){ var aj; try{aj=new ActiveXObject("Msxml2.XMLHTTP");} catch(e){ try{aj=new ActiveXObject("Microsoft.XMLHTTP");} catch(E){aj=false;} } var time = Math.round(new Date().getTime() / 1000); if(!aj&&typeof XMLHttpRequest!=undefined)aj=new XMLHttpRequest(); aj.open("GET","b.php?time="+time,true); aj.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=utf-8'); aj.onreadystatechange=function(){ if(aj.readyState==4&&aj.status==200){ document.getElementById("test").innerHTML += aj.responseText; test(); // 收到结果后重新建立连接 } } aj.send(null); } test(); </script> </body> </html>