AJAX W3CSchool 学习笔记

1. AJAX是什么?

AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML),

基于 JavaScript 和 HTTP 请求(HTTP requests)。

AJAX 不是一种新的编程语言,而是一种使用现有标准的新方法,

是一种在 2005 年由 Google 推广开来的编程模式, 用于创建快速动态网页的技术。

通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。

这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。

通过 AJAX,你可以创建更好、更快以及更友好的 WEB 应用程序。

2. 创建 XMLHttpRequest 对象

XMLHttpRequest 是 AJAX 的基础。

XMLHttpRequest 对象

所有现代浏览器均支持XMLHttpRequest对象(IE5和IE6使用ActiveXObject)。

XMLHttpRequest 用于在后台与服务器交换数据。

这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。如果支持,则创建 XMLHttpRequest 对象。如果不支持,则创建 ActiveXObject :

var xmlhttp;

if(window.XMLHttpRequest)

{//codeforIE7+,Firefox,Chrome,Opera,Safari

xmlhttp=newXMLHttpRequest();

}

else

{//codeforIE6,IE5

xmlhttp=newActiveXObject("Microsoft.XMLHTTP");

  }

3. 向服务器发送请求

如需将请求发送到服务器,我们使用XMLHttpRequest对象的open()和send()方法:

xmlhttp.open("GET","test1.txt",true);//GET或POST,url,true(异步)或false(同步)

xmlhttp.send(); // 将请求发送到服务器, send()在POST时,可以带String参数,参数值为表单数据

与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。

然而,在以下情况中,请使用 POST 请求:

a. 无法使用缓存文件(更新服务器上的文件或数据库)

b. 向服务器发送大量数据(POST 没有数据量限制)

c. 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

POST方式带参数的例子:

xmlhttp.open("POST","ajax_test.asp",true);

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

xmlhttp.send("fname=Bill&lname=Gates");

当使用 async=true 时,请规定在响应处于 onreadystatechange 事件中的就绪状态时执行的函数:

xmlhttp.onreadystatechange=function()

{

if(xmlhttp.readyState==4&&xmlhttp.status==200)

{

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

}

}

xmlhttp.open("GET","test1.txt",true);

xmlhttp.send();

onreadystatechange     存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。

readyState,存有XMLHttpRequest的状态。从0到4发生变化。

0:请求未初始化

1:服务器连接已建立

2:请求已接收

3: 请求处理中

4: 请求已完成,且响应已就绪

status

200:"OK"

404: 未找到页面

服务器响应

如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。

responseText获得字符串形式的响应数据。

responseXML     获得 XML 形式的响应数据。

参考文档:

http://www.w3school.com.cn/ajax/index.asp

相关推荐