18.3.3 编写回调函数
上一节已经实现了AJAX应用中向服务器发送请求的功能,接下来要面对的就是处理服务器的响应。上小节的示例代码的第21行所指定的服务器处理完请求之后所要调用的函数,即所谓的回调函数,JavaScript将在这个函数中完成对服务器返回响应的处理。
通过上小节的学习,读者已经知道XmlHttpRequest对象的readyState属性表示了请求/响应过程中的不同状态。当该属性值为4时,表示响应加载完毕。XmlHttpRequest对象的另一个属性responseText存放了服务器文本格式的响应,也就是说,服务器将请求的处理结果填充到XmlHttpRequest对象的responseText属性中。知道了这两点,完成回调函数就顺理成章、水到渠成了。下面的代码18-3就是处理服务器响应的JavaScript函数的一个实现。
代码18-3 处理服务器响应的JavaScript程序18-3.js
01 function updatePage()
02 {
03 if(xmlHttp.readyState==4)
04 {
05 var response=xmlHttp.responseText;
06 document.getElementById("userInfo").value=response;
07 }
08 }
【代码解析】这段处理服务器响应的代码看起来要比发出请求的JavaScript代码简单。该函数等待服务器的调用,当服务器处理完请求,就会调用该函数。这段代码第3行判断XmlHttpRequest对象的readyState属性的值是否为4,如果为4,则通过XmlHttpRequest对象的responseText获取服务器的响应数据,如代码第5行所示。然后通过JavaScript代码将这个服务器的响应结果显示到Web页面中,如代码第6行所示。AJAX正是在这里实现了页面没有刷新,但页面内容却被更新的效果。
共有条评论 网友评论