js021-AjaxComet

本章内容:

使用XMLHttpRequet对象

使用XMLHttpRequet事件

跨域Ajax通信的限制

Ajax技术的核心是XMLHttpRequet对象

21.1 XMLHttpRequet对象

创建XHR对象:

var xhr = createXHR();

 

21.1.1 XHR用法

在使用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/原创发表,未经作者允许,不得私自转载抄袭!!!

js021-Ajax与Comet的更多相关文章

  1. 21. javacript高级程序设计-Ajax与Comet

    1. Ajax与Comet 1.1 XMLHttpRequest对象 IE5是第一款引入XHR对象的浏览器,IE5中是通过MSXML库中的一个ActiveX对象实现的.因此在IE中可能存在MSXML2 ...

  2. [网页设计]Ajax、Comet与Websocket--转

    从http协议说起 1996年IETF  HTTP工作组发布了HTTP协议的1.0版本 ,到现在普遍使用的版本1.1,HTTP协议经历了17 年的发展.这种分布式.无状态.基于TCP的请求/响应式.在 ...

  3. Ajax、Comet与Websocket

    从 http 协议说起 1996年IETF  HTTP工作组发布了HTTP协议的1.0版本 ,到现在普遍使用的版本1.1,HTTP协议经历了17 年的发展.这种分布式.无状态.基于TCP的请求/响应式 ...

  4. Ajax、Comet、Websocket、SSE

    从 http 协议说起 1996年IETF  HTTP工作组发布了HTTP协议的1.0版本 ,到现在普遍使用的版本1.1,HTTP协议经历了17 年的发展.这种分布式.无状态.基于TCP的请求/响应式 ...

  5. 探求网页同步提交、ajax和comet不为人知的秘密(上篇)

    标题里的技术都是web开发里最常见的技术,但是我想这些常用的技术有很多细节是很多朋友不太清楚的,理解这些细节是我们深入掌握这些技术的一把钥匙,今天我就讲讲我使用这些技术时体会到的这些细节. 同步提交是 ...

  6. HTTP 笔记与总结(9)分块传输、持久链接 与 反向 ajax(comet / server push / 服务器推技术)

    反向 ajax 又叫 comet / server push / 服务器推技术 应用范围:网页聊天服务器,例如新浪微博在线聊天.google mail 网页聊天 原理:一般而言,HTTP 协议的特点是 ...

  7. Ajax、Comet、HTML 5 Web Sockets技术比较分析

    最近因为考虑研究B/S结构网站即时消息处理 参考了 JAVA怎么样实现即时消息提醒http://bbs.csdn.net/topics/330015611http://www.ibm.com/deve ...

  8. 《JAVASCRIPT高级程序设计》Ajax与Comet

    Ajax,是Asynchronous JavaScript + XML的简写,这一技术能向服务器请求额外的技术而无需卸载页面,会带给用户更好的体验.Ajax的核心是XMLHttpRequest对象.为 ...

  9. Ajax 与 Comet

    Ajax技术的核心是XMLHttpRequest对象(简称XHR). XMLHttpRequest对象 在浏览器中创建XHR对象要像下面这样,使用XMLHttpRequest构造函数. var xhr ...

  10. 《JavaScript》高级程序设计第21章:Ajax和Comet,jsonp

    一.创建XMLHttpRequest对象 二.XHR的用法 五.跨域资源共享 六.其他跨域技术七.安全七.安全 1. 图像Ping 2. JSONP(JSON with padding,填充式JSON ...

随机推荐

  1. 简易版viewport

    首先这里涉及到虚拟像素和物理像素,不管是移动设备还是pc都存在这个概念1.在显示器精度还不是很高的年代,一个物理像素就等于一个虚拟像素,1000px的网页就占据了1000的物理像素(如果你玩过小霸王, ...

  2. linux基础-第十四单元 Linux网络原理及基础设置

    第十四单元 Linux网络原理及基础设置 三种网卡模式图 使用ifconfig命令来维护网络 ifconfig命令的功能 ifconfig命令的用法举例 使用ifup和ifdown命令启动和停止网卡 ...

  3. JS iframe元素和父页面元素互访

    说明:以下内容来自互联网 [1]子页面取得父页面的dom对象   parent.window.$('#id').val("");   [2]父页面取得子页面的对象   $(wind ...

  4. Java--剑指offer(1)

    1.在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. a)        常规程序 ...

  5. #查看Linux的版本信息

    查看Ubuntu的版本信息 cat /etc/issue lsb_release -a 查看Centos的版本信息 cat /etc/centos-release rpm -q centos-rele ...

  6. 写chrome插件---一个优酷自动加粉丝助手

    写chrome插件主要就是写js , 我们要构造界面(HTML), 以及样式(CSS),  以及chrome给我们提供的jsAPI, 主要是chrome的API, 调试的话可以使用chrome的开发者 ...

  7. Spring中配置和读取多个Properties文件

    一个系统中通常会存在如下一些以Properties形式存在的配置文件 1.数据库配置文件demo-db.properties: database.url=jdbc:mysql://localhost/ ...

  8. Java算法-选择排序

    (转载出处) 选择排序的基本思想是遍历数组的过程中,以 i 代表当前需要排序的序号,则需要在剩余的 [i…n-1] 中找出其中的最小值,然后将找到的最小值与 i 指向的值进行交换.因为每一趟确定元素的 ...

  9. 实在没想到系列——HashMap实现底层细节之keySet,values,entrySet的一个底层实现细节

    我在看HashMap源码的时候发现了一个没思考过的问题,在这之前可以说是完全没有思考过这个问题,在一开始对这个点有疑问的时候也没有想到居然有这么个语法细节存在,弄得我百思不得其解,直到自己动手做实验改 ...

  10. python 基础 基本数据类型

    基本类型的补充 str --> 一次性创建的,不能被修改,强制修改就会在创建一个而之前的也会在 list -->允许重复的集合 修改  记录 链表,下一个元素的位置,上一个元素的位置 tu ...