龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

使用AJAX构建更优秀的Web应用程序(1)(2)

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
注意 在这个示例应用程序中,AjaxClient.aspx页面是用户接口,AjaxServer.aspx则负责提供每一个用户请求时的数据。要特别注意的是,AjaxServer.aspx页面不应该包

注意

在这个示例应用程序中,AjaxClient.aspx页面是用户接口,AjaxServer.aspx则负责提供每一个用户请求时的数据。要特别注意的是,AjaxServer.aspx页面不应该包含任何HTML。你可以测试一下如果页面包含HTML将会发生什么。

open方法的第一个参数(见上面表格中的Open函数)指示当前操作为一个GET操作或是POST操作。在进行简单的数据检索时,一般使用GET。当向外传输的数据包大于512字节且操作包括服务器端活动(如插入,更新等)时,一般使用Post。接下来,我们看一下"url"参数。这个参数可以是一个完整的url也可以是一个相对url。在上面例子中,使用的是相对的url。"asyncFlag"参数指示在执行send方法后是否立即处理到来的脚本(这意味着不必等待是否有响应)。最后两个参数分别是"username"和"password",如果"url"中提供这些数据的话。

另一个重要的方法是send方法,它实际上使用一个消息体发送请求。对于本例而言,它只是发送一个空请求。 

[
//实际发送一个空请求
req.send(null);
]

(三) 属性

在此,应用程序中使用了onreadystatechange:

//这是事件处理器机制;在本例中,"RequestProcessor"即是事件处理器。
req.onreadystatechange=RequestProcessor;

对于这个应用程序来说,"RequestProcessor"是客户端的事件处理器。现在,在事件处理器内,使用readyState属性来获得各种状态。值4显示已经完成某种处理。现在,在处理结果前,你应该检查状态或statusText以决定操作成功与否。在这个应用程序中,我是以下面方式实现的:

function RequestProcessor()
{
 //如果readyState处理"Ready"状态
 if(req.readyState == 4)
 {
//返回的状态代码200意味着一切顺利
if(req.status == 200)
{
 //如果responseText不空
 //req.responseText实际上是一个
由AJAXServer.aspx的"Response.Write
("" + sbXML.ToString() + "");"方法编写的字符串
 if(req.responseText != "")
 {
populateList(req.responseXML);
 }
 else
 {
clearSelect(publishedBooks);
 }
}
 }
 return true;
}

注意 对象req被声明为一个页面级的变量:

var req = new ActiveXObject("Microsoft.XMLHTTP");

精彩图集

赞助商链接