我是 Ajax 的新手,更糟糕的是,我也是一个 Javascript 菜鸟,我已经发布了一个聊天脚本的波纹管代码,用于实时从数据库中检索文本,并且代码正在运行,但我需要了解某些请求的全部内容。
<script>
function retrieve(){
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest(); }
else if(window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
else {
alert('Please update your browser to start chatting');
}
简单地说,我明白上面是(我创建它)只是一个声明为分配是否 XMLHttpRequest/ActiveXObject 对象的全局变量的函数,这取决于浏览器是否为 IE6,7 和其他如果不引发警报...
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById("canvas").innerHTML = xmlhttp.responseText;
}
}
同样,我假设上面的内容获取 onreadystatechange
了 Ajax API 的属性并检查它的状态,readyState
如果status
它们匹配 4 和 200 意味着,Ajax 正在按需要工作
t = setTimeout("retrieve()", 2000);
我知道这setTimeout()
有点像setInterval()
函数,它每 2 秒在其中运行一次函数,以检查新消息。
xmlhttp.open("GET", "getajax.php", true);
xmlhttp.send();
现在,问题出在上面,我几乎可以理解该.open
方法应该从中获取数据,getajax.php
尽管我不知道true
在这种情况下是什么意思,但据我所知,xmlhttp.send();
我完全不知道,
所以,我只需要你简单地向我解释一下我在 illaboration 中错过了什么,以及最后的查询是什么意思。
}
retrieve();
</script>
<div id="canvas"></div>