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
相关推荐
结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo