Wednesday, 27 May 2009

AJAX

记一下,免得找不到了。

在server上有一段程序getNextRes.jsp,比较慢,每返回一个结果就输出到client。就是说,连续输出结果,每次在html上加一些内容,不是一次输出。curK是当前的ID(1<=curK<=maxK)。

主页面加这样一段:

<head>
<script type="text/javascript">
var http = false;
var curK = 0;
if(navigator.appName == "Microsoft Internet Explorer") {
http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
http = new XMLHttpRequest();
}

function getRes() {
http.abort();
curK++;
http.open("GET", "getNextRes.jsp");
http.onreadystatechange = handleResponse;
http.send('x=1'); //随便写点,否则IE不会重复调用jsp
}
function handleResponse() {
if(http.readyState == 4) {
var response = http.responseText;
if(response){
document.getElementById('r'+curK).innerHTML = response;
if (curK < <%= maxK %>) {
getRes();
}
}
}
}

</script>

</head>

<body onload="getRes();">
<% for (int i=1; i <= maxK; i++) {
String tag = "r"+i;%>
<div id="<%= tag %>"></div>
<br><br>
<% } %>
<body>

No comments: