AJAX基础教程——学习笔记(一)

原创 2007年09月13日 14:13:00
 
创建XMLHttpRequest对象的一个实例(p24)
var xmlHttp;
function createXMLHttpRequest(){
       if (window.ActiveXObject) {
       xmlHttp = new ActiveXObject(“Microsoft.XMLHTTP”);
} else if {
       XmlHttp = new XMLHttpRequest();
}
}
 
 
 
XMLHttpRequest的方法p(25)
Abort(): 停止当前请求
 
getAllResponseHeaders(): 把HTTP请求的所有响应首部作为键/值对返回
 
getResponseHeader(“header”): 返回指定首部的串值
 
open(“method”, “url”): 建立对服务器的调用。Method参数可以使GET、POST或PUT。url参数可以使相对URL或绝对URL。这个方法还包括3个可选的参数
       void open(string method, string url, Boolean asynch, sting username, string password)
第三个参数传递一个Boolean值,指示这个调用是异步还是同步的。默认值为true,表示请求本质上是异步的。如果这个参数为false,处理就会等待,直到从服务器返回响应为止。最后两个参数允许你指定一个特定的用户名和密码。
 
send(content): 向服务器发送请求
       如果请求声明为异步的,这个方法就会立即返回,否则它会等待直到接收到响应为止。
 
setRequestHeader(“header”, “value”): 把指定首部设置为所提供的值。在设置任何首部之前必须先调用open()
 
 
 
XMLHttpRequest属性(p26)
Onreadystatechange: 每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数
 
readyState: 请求的状态。有5个可取值:0=未初始化,1=正在加载,2=已记载,3=交互中,4=完成
 
responseText: 服务器的响应,表示为一个串
 
responseXML: 服务器的响应,表示为XML。这个对象可以解析为一个DOM对象
 
status: 服务器的HTTP状态码(200对应OK,404对应Not Found,等等)
 
statusText: HTTP状态码的相应文本
 
 
 
AJAX交互示例(p26)
1、 客户端事件触发Ajax事件。
<input type=”text” name=”email” onblur=”validateEmail()” />
2、 创建XMLHttpRequest对象的一个实例。使用open()方法建立调用,并设置URL以及所希望的HTTP方法(通常是GET或POST)。请求实际上通过一个send()方法调用触发。
Var xmlHttp;
Function validateEmail(){
Var email = document.getElementById(“email”);
Var url = “validate?email=” + escape(email.value);
 
If (window.ActiveXObject) {
 xmlHttp = new ActiveXObject(“Microsoft.XMLHTTP”);
} else if (window.XMLHttpRequest) {
 xmlHttp = new XMLHttpRequest();
}
 
xmlHttp.open(“GET”, url);
xmlHttp.onreadystatechange = callback;
xmlHttp.send(null);
}
3、 向服务器做出请求。可能调用servlet、CGI脚本,或者任何服务器端技术。
4、 服务器可以做出你想做的事情,包括访问数据库,甚至访问另一个系统。
5、 请求返回到浏览器。Content-Type设置为text/xml——XMLHttpRequest对象只能处理text/html类型的结果。需要说明,你还需要设置另外一些首部,使浏览器不会在本地缓存结果。如下
response.setHeader(“Cache-Control”, “no-cache”);
response.setHeader(“Pragma”, “no-cache”);
(Pragma和Cache-Control是做相同的是,定义Pragma是为了保证以后的兼容)
6、 在这个示例中,XMLHttpRequest对象配置为处理返回时要调用callback()函数。这个函数会检查XMLHttpRequest对象的readyState属性,然后查看服务器返回的状态码。如果一切正常,callback()函数就会在客户端做些工作。
Function callback() {
 If (xmlHttp.readyState == 4) {
 If (xmlHttp.status == 2) {
 //do something
}
}
}
 
 
 
GETPOST(p28)
 
 
 
XMLHttpRequest对象发送请求的基本步骤(p31)
1、 为得到XMLHttpRequest对象实例的一个引用,可以创建一个新的实例,也可以访问包含XMLHttpRequest实例的一个变量。
2、 告诉XMLHttpRequest对象,哪个函数会处理XMLHttpRequest对象状态的改变,为此要把对象的onreadystatechange属性设置为指向JavaScript函数的指针。
3、 指定请求的属性。XMLHttpRequest对象的open()方法会指定将发生的请求。
4、 将请求发送给服务器。XMLHttpRequest对象的send()方法把请求发送给指定的目标资源。Send()方法接受一个参数,通常是一个串或一个DOM对象。这个参数作为请求体的一部分发送到目标URL。当向send()方法提供参数时,要确保open()中指定的方法是POST。如果没有数据作为请求体的一部分被发送,则使用null。
 
你需要XMLHttpRequest对象的一个实例,要告诉它如果状态有变化该怎么做,还要告诉它向哪里发送请求以及如何发送请求,最后还需要指导XMLHttpRequest发送请求。
对于XMLHttpRequest对象,onreadystatechange属性存储了回调函数的指针。当XMLHttpRequest对象内部状态发生变化时,就会调用这个回调函数。当进行了异步调用,请求就会发生,脚本立即继续处理(在脚本继续工作之前,不必等待请求结束)。一旦发生了请求,对象的readyState属性就会经过几个变化。尽管针对任何状态都可以做一些处理,不过你最感兴趣的状态可能是服务器响应结束时的状态。通过设置回调函数,就可以有效地告诉XMLHttpRequest对象:“只要噢响应到来,就调用这个函数来处理响应。”
 
 

【未完】Python学习笔记【十】——《python基础教程》:: 充电时刻

python

python基础教程_学习笔记13:标准库:一些最爱——sys

标准库:一些最爱 sys sys这个模块让你能够访问与python解释器联系紧密的变量和函数。 sys模块中一些重要的函数和变量 函数/变量 描述 argv 命令行参数,包括脚本名称 e...

Python学习笔记【六】——《python基础教程》:: 抽象

第6章 抽象6.3. 创建函数 判断函数是否可调用。 Python3.0前,使用内建函数callable(func) Python3.0后,使用表达式hasattr(func, __call__)...

《Python基础教程》学习笔记——列表

列表:Python的“苦力” 列表是序列的一种,它是可变的。list函数可以将其他序列转换为列表list1 = list('hello') print list1 list2 = list((1,2...

《Python 基础教程》学习笔记——字典

字典:Python中唯一内建的映射类型-----------创建字典----------phonebook = {'Alice':'2341','Beth':'9102','Cecil':'3258'...

我的学习笔记——CSS基础教程

刚开始学习CSS,摘录给自己看嘚。。

《Python基础教程》学习笔记——字符串

序列的通用操作,加、乘、成员资格、最值、长度都适用于字符串----------字符串格式化----------用%来实现:在%的左侧放置一个格式化字符串,右侧放置希望格式化的值。 值可以是数字、字符...

python基础教程_学习笔记12:充电时刻——模块

充电时刻——模块 python的标准安装包括一组模块,称为标准库。 模块 >>> import math >>> math.sin(0) 0.0 模块是程序 任何python程序都可以作...

Python学习笔记【五】——《python基础教程》:: 条件、循环和其他语句

第5章 条件、循环和其他语句

Python学习笔记【三】——《python基础教程》:: 使用字符串

第3章 使用字符串
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AJAX基础教程——学习笔记(一)
举报原因:
原因补充:

(最多只允许输入30个字)