我是 Web 开发的新手,并且一直在阅读 AJAX,以便我可以使用新数据实时更新地图。我正在阅读一篇关于 Comet 的 IBM 文章。它们为 Apache Tomcat 提供了一个实现。
文章:http ://www.ibm.com/developerworks/web/library/wa-cometjava/#resources
他们提供的 JavaScript 代码如下..
<SCRIPT TYPE="text/javascript">
function go(){
var url = "http://localhost:8484/WeatherServer/Weather"
var request = new XMLHttpRequest();
request.open("GET", url, true);
request.setRequestHeader("Content-Type","application/x-javascript;");
request.onreadystatechange = function() {
if (request.readyState == 4) {
if (request.status == 200){
if (request.responseText) {
document.getElementById("forecasts").innerHTML =
request.responseText;
}
}
go();
}
};
request.send(null);
}
</SCRIPT>
</head>
<body>
<h1>Rapid Fire Weather</h1>
<input type="button" onclick="go()" value="Go!"></input>
<div id="forecasts"></div>
</body>
我明白这一切,但有几个问题。
1) request.send() 是否产生一个新线程?2) 递归调用 go() 最终会导致堆栈溢出吗?