读书人

Ajax onreadystatechange有关问题

发布时间: 2011-12-30 23:30:45 作者: rapoo

Ajax onreadystatechange问题
<script type="text/javascript">
var xmlHttp;
//创建一个XmlHttpRequeset对象
if(window.ActiveXObject)...{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)...{
xmlHttp = new XMLHttpRequest();
}

//开始一个请求
function startRequest()...{

xmlHttp.onreadystatechange = handlestatechange;
xmlHttp.open("GET", "SimpleRespose.aspx", true);
xmlHttp.Send(null);
}

function handlestatechange()...{
if(xmlHttp.readyState == 4)...{//描述一种"已加载"状态;此时,响应已经被完全接收。
if(xmlHttp.status == 200)...{//200表示成功收到
alert("The Server Replied with:" + xmlHttp.responseText)
}
}
}
</script>

现在用一个window.interval("startRequest()",10000)每隔10秒就调用一次
startRequest函数。 在SimpleRespose.aspx的load事件里面每次都response回一个字符串。
但是只有第一次调用startRequest函数的时候才回调用handlestatechange(),这是什么原因呢?按理来说应该每open()一下,当服务器返回时就调用handlestatechange啊

[解决办法]
if(window.ActiveXObject)...{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)...{
xmlHttp = new XMLHttpRequest();
}
这段代码每次都要执行吧。

读书人网 >C#

热点推荐