AJAX复习(一)

在web应用中,我们常常因为服务器访问频繁或者网络传输问题,需要长时间等待网页响应,造成很不流畅的用户体验。为了解决这一困顿,我们引入了AJAX技术。

AJAX开发:

步骤一:在IE中实例化Msxml2.XMLHTTP对象

var xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

不同浏览器有不同的内置xmlhttp对象,该对象可以实现异步请求和响应。

步骤二:指定异步提交的目标和提交方式,调用xmlHTTP的open方法

xmlHttp.open("GET", "info.jsp", true);

参数一指定打开方式,参数二指定目标位置url,参数三表示同意异步(最重要)。

步骤三:指定当xmlHTTP状态改变时,需要进行的处理

xmlHttp.onreadystatechange=function() {

}

处理通过响应函数实现。

xmlhttp状态有五个:

0.未初始化,对象已创建,未调用open();

1.已初始化状态,调用open()后;

2.发送数据状态,调用send()后;

3.数据传送中状态,已经接收数据,但是未曾接收完毕;

4.完成状态,数据全部接收完毕。

步骤四:编写处理代码

if (xmlHttp.readyState==4) {

infoDiv.innerHTML = xmlHttp.responseText;     //将id=infoDiv的div内部html代码全部替换

infoDiv.innerText = xmlHttp.responseText;

}

当xmlHttp状态为4(xmlHttp.readyState==4)时,开始处理;加载在响应函数内部。

步骤五:发出请求

xmlHttp.send();

实例:

function login(){

var account = document.loginForm.account.value;

var password = document.loginForm.password.value;

var xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

var url = "/Prj22/servlet/LoginServlet?account="+account+"&password="+password;

xmlHttp.open("GET", url, true);

xmlHttp.onreadystatechange=function() {

if (xmlHttp.readyState==4) {

resultDiv.innerHTML = xmlHttp.responseText;

}

else{

resultDiv.innerHTML = "正在登录,请稍候......";

}

}

xmlHttp.send();

}

执行登录操作:

AJAX复习(一)_第1张图片

登录后:

AJAX复习(一)_第2张图片

我们可以看到,登录后浏览器地址栏并没有改变,也就是说,利用AJAX,我们实现了异步提交。

你可能感兴趣的:(AJAX复习(一))