(''There was a problem with the request.'');
}
}
}
解释:首先创建一个XMLHttpRequest对象http_request,如果支持window.XMLHttpRequest,则用new XMLHttpRequest() 来创建此对象。这条语句针对 Firefox、Opera 以及 Safari 浏览器,如果不支持,则尝试针对Internet Explorer 6.0+ 的Msxml2.XMLHTTP组件创建XMLHttpRequest,如果也不支持,则尝试针对 Internet Explorer 5.5+ 的Microsoft.XMLHTTP组件,如果仍然不支持,则说明用户的浏览器版本太低了,提示用户“您的浏览器不支持AJAX”。
XMLHttpRequest对象的onreadystatechange方法用于,状态改变时要执行的方法,用来处理这个响应。
readyState的状态是:
0 请求未初始化(open() 之前)
1 请求已提出,正在装载 (调用 send() 之前)
2 装载完毕,请求已发送(这里通常可以从响应得到内容头部)
3 交互中,请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应)
4 请求已完成(可以访问服务器响应并使用它)
所以当readyState等于4时,就表示一个完整的服务器响应已经收到了,接着,函数会检查HTTP服务器响应的状态值。当HTTP服务器响应的值为200时,表示状态正常。这时候才真正执行客户端要执行的操作。
读取从服务器返回过来的数据,有两种方式:
1、http_request.responseText:以文本字符串的方式返回服务器的响应
2、http_request.responseXML:以XMLDocument对象方式返回响应
五、Ajax缺陷与不足 1、可能破坏浏览器后退按钮的正常行为;
2、使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中;
3、Ajax的无刷新重载,由于页面的变化没有刷新重载那么明显,所以容易给用户带来困扰——用户不太清楚现在的数据是新的还是已经更新过的;现有的解决有:在相关位置提示、数据更新的区域设计得比较明显、数据更新后给用户提示等;
4、一些手持设备(如手机、PDA等)现在还不能很好的支持Ajax。
六、Ajax工具
1、jQuery 开源JS框架,写得更少,做得更多;
2、ASP.NET AJAX Extension 微软AJAX工具箱;
3、ExtJS 一个自YUI延伸出来的Ajax框架。