ajax为什么会使CPU达到100%
小弟刚学asp
想用asp+ajax做个聊天室,但是代码中的ajax经常会使CPU跳到100%
下面是我其中的一个asp文件
common.asp
<html>
<head>
<META http-equiv=Content-Type content="text/html; charset=gbk">
</head>
<%@ language="JScript"%>
<textarea rows="15" cols="80" readonly="true" id="message" name="message">
<%
var app = new Enumerator(Application.Contents);
while(!app.atEnd())
{
var str=app.item();
var value = Application.Contents.Item(str);
Response.write(value);
app.moveNext();
}
%>
<!--#include file="common.asp"-->
</textarea>
<SCRIPT LANGUAGE="JavaScript" src="prototype.js">
</SCRIPT>
<form action="server.asp" method="post">
<input type="hidden" name="name" value="">
<textarea name="talk"></textarea>
<input type="submit" value="submit" >
</form>
<input type="button" onclick="clearTime()">
<script language="javascript" type="text/javascript">
var req;
req=new XMLHttpRequest();//创建XMLHTTPRequest对象
function GetInfo(){
var pars='';//参数
var url="server.asp?name=&talk=&get="+Math.random();
// req=new Ajax.Request(url,{method:'get',parameters:pars,onComplete:parseMessage});
req=new ActiveXObject("Microsoft.XMLHTTP");
req.open("get", url, true);
// req.setRequestHeader("Context-Type", "text/html; charset=utf-8");
req.onreadystatechange = callback;//请求回调函数
req.send(null);
}
function callback(){
if(req.readyState==4){ //判断就绪状态
if(req.status==200){
parseMessage();//接收返回的数据
//更新网页的内容
}else {
alert("Not able to retrieve description "+req.statusText);
}
}
else {}
}
function obj(s){
try{ stringToXML_soap=new ActiveXObject("Microsoft.XMLDOM");
stringToXML_soap.async = false;
stringToXML_soap.loadXML(arguments[0]);
return stringToXML_soap.documentElement;
} catch(e) {
var soap=new DOMParser();
var stringToXML_soap=soap.parseFromString(arguments[0],"text/xml");
return stringToXML_soap;
}
}
function parseMessage(req){
var xmldoc=obj(req.responseText); //获得返回的数据
var Node=xmldoc.getElementsByTagName("message"); //获得文件中的<info>标记
if(Node[0].text!="")
document.getElementById("message").value+=Node[0].text ;
}
temp = window.setInterval("GetInfo()", 3000);
function clearTime(){
clearInterval(temp);
}
</script>