js021-Ajax与Comet

js021-AjaxCometphp

本章内容:html

使用XMLHttpRequet对象跨域

使用XMLHttpRequet事件浏览器

跨域Ajax通讯的限制服务器

 

Ajax技术的核心是XMLHttpRequet对象cookie

 

21.1 XMLHttpRequet对象app

建立XHR对象:异步

var xhr = createXHR();ide

 

21.1.1 XHR用法post

在使用XHR对象是,调用的第一个方法是open().该方法接收三个参数:要发送请求的类型(“get”、”post” 等 ),请求的URL和表示是否异步发送请求的布尔值。

xhr.open("get", "example.php", fasle);

调用open()方法并不会真正发送请求,而是启动一个请求一备发送

 

要发送特定请求,要像以下调用send()方法

xhr.open("get", "example.txt", fasle);

xht.send(null);

send()方法接收一个参数:要做为请求主题发送的数据,若是不须要经过请求主发送数据则用null。

由于该请求是同步的,JS代码会等到服务器响应后才继续执行

 

21.1.2 HTTP头部信息

默认状况下,在发送XHR请求的同时,还会发送下列头部信息:

头部信息

说明

Accept

浏览器可以处理的内容类型

Acce-pt-Charset

浏览器可以显示的字符集

Accept-Encoding

浏览器可以处理的压缩编码

Accept-Language

浏览器当前设置的语言

Connection

浏览器与服务器之间的链接类型

Cookie

当前页面设置的任何Cookie

Host

发出请求的页面所在的域

Referer

发出请求的页面的URI

User-Agent

浏览器的用户代理字符串

 

21.1.3 GET请求

使用get请求时常常会发生错误:查询字符串的格式有问题。

查询字符串的没个参数名称和值都必须使用encodeURIComponent()进行编码,而后才能放到url的末尾。并且全部的名-值对都必须用和号(&)分开。

xhr.open("get", "example.php", name1 = value1&name2 = value2);

 

21.1.4 post请求

用于向服务器发送应该被保存的数据。Post应该把数据做为请求的主题提交,get请求传统上不是这样的。Post方法能够传入多个参数,且格式不限。

发送post请求的第二部是想sent()方法中传入某些数据。

 

21.2 XMLHttpRequest 2

21.2.1 formdata

表单数据序列化。

Formdata为序列化表单以及建立与表单格式相同过得数据提供便利。以下建立了一个formdata对象,并向其添加了一些数据:

var data = new FormData();

data.append ("name", "meimei");

append()方法接收两个参数:键和值。分别对应表单字段的名字和字段中包含的值。能够添加任意多个键值对。

 

21.2.2 超时设定

Timetout 属性,表示请求在等待相应多少好秒后就终止。在给timeout设置一个数值后,若是在规定的事件内浏览器尚未接收到响应,那么就会触发timeout事件,进而会调用ontimeout事件处理程序。

 

21.2.3 overrideMimeType()方法

调用该方法必须在send()方法以前,才能保证重写相应的MIME类型。

 

21.3 进度事件

有如下6个进度事件:

事件

说明

loadstart

在接收到响应数据的第一个字节时触发

progress

在接收响应期间持续不断的触发

error

在请求发生错误是触发

abort

在由于调用abort()方法而终止链接时触发

load

在接收到完整的相应数据时触发

loadend

在通讯完成或者触发error、abort或load事件后触发。

 

21.3.1 load事件

21.3.2 progress事件

 

 

 

 

21.4 跨资源共享

21.4.1 IE对CORS 的实现

XDR(XDomainRequest)类型,该对象与XHR类似。如下是XDR和XHR之间的不一样之处

cookie不会随请求发送,也不会随响应器返回;

只能设置请求头部信息中的Content-Type字段;

不能访问响应头部信息

只支持get和post请求

 

 

本章看不下去了,周四前再来补上来

 

 

 

原文地址:http://www.cnblogs.com/lal-fighting/p/5164165.html

相关文章
相关标签/搜索