1.基于反复链接实现commet <script type="text/javascript"> $(function(){ function pollData(){ $.get("../first.do",function(data){ $("#content").append(data+"<br>"); },"html"); } setInterval(pollData,5000); }); </script> </head> <body> <div id="content"></div> <!-- comet实现 1.修改tomcat/server.xml中connector协议HTTP1.1为 org.apache.coyote.http11.Http11NioProtocol 2.创建Servlet,实现CometProcesser接口 3.获取响应的request和response --> </body> ////////////////////////////////////////////////////// <script type="text/javascript"> $(function(){ pollData(); function pollData(){ var xhr=createXMLHttpRequest(); /*由于jquery没有办法支持不同的状态码的判断,所以需要通过原始的ajax来处理*/ xhr.open("POST","../second.do",true); var pos=0; xhr.onreadystatechange=function(){ /*让状态码等于3就可以保证两端一直进行连接,这是实现长连接stream的方式*/ if(xhr.readyState==3&&xhr.status==200){ $("#content").append(xhr.responseText.substring(pos)+","); pos=xhr.responseText.length; } } /*基于长连接的方式,由于状态码是在3的时候出来数据,对于很多浏览器而言并不支持(仅firefox支持) 在状态码为3的时候传递数据,所以限制很大,所以需要使用新的方式:长轮询,目前最流行的方式*/ xhr.send(); } function createXMLHttpRequest(){ if(window.XMLHttpRequest){ //针对其他主流浏览器 return new XMLHttpRequest(); }else if(window.ActiveXObject){ //针对IE5和IE6 return new ActiveXObject("Microsoft.XMLHTTP"); }else{ alert("你使用的浏览器不支持XMLHttpRequest,请换一个浏览器试试!"); } } }); </script> </head> <body> <div id="content"></div> <!-- comet 长连接实现 1.修改tomcat/server.xml中connector协议HTTP1.1为 org.apache.coyote.http11.Http11NioProtocol 2.创建Servlet,实现CometProcesser接口 3.获取响应的request和response --> </body> ///////////////////////////////////////////// <script type="text/javascript"> $(function(){ poll(); function poll(){ var xhr=createXMLHttpRequest(); /*长轮询的方式是每一次提交都是一个完整的请求,所以应该在状态码为4的时候处理*/ xhr.open("POST","../second.do",true); xhr.onreadystatechange=function(){ if(xhr.readyState==4&&xhr.status==200){ $("#content").append(xhr.responseText+""); /*再次建立连接*/ poll(); } } xhr.send(); } function createXMLHttpRequest(){ if(window.XMLHttpRequest){ //针对其他主流浏览器 return new XMLHttpRequest(); }else if(window.ActiveXObject){ //针对IE5和IE6 return new ActiveXObject("Microsoft.XMLHTTP"); }else{ alert("你使用的浏览器不支持XMLHttpRequest,请换一个浏览器试试!"); } } }); </script> </head> <body> <div id="content"></div> <!-- comet 长连接实现 1.修改tomcat/server.xml中connector协议HTTP1.1为 org.apache.coyote.http11.Http11NioProtocol 2.创建Servlet,实现CometProcesser接口 3.获取响应的request和response --> </body> //////////////////////////////////////////////// <script type="text/javascript"> $(function(){ poll(); function poll(){ $.post("../comet.do",function(data){ $("#content").append(data+","); poll(); },"html"); } }); </script> </head> <body> <div id="content"></div> <!-- comet 长连接实现 1.修改tomcat/server.xml中connector协议HTTP1.1为 org.apache.coyote.http11.Http11NioProtocol 2.创建Servlet,实现CometProcesser接口 3.获取响应的request和response --> </body>