JavaScript高级程序设计第3版(红宝书)读书笔记-Ajax与Comet

所有内容来源书本
Ajax是无需刷新页面就能够从服务器取得数据的一种方法,关于Ajax,可以从以下几方面来总结。

1.负责Ajax运作的核心对象是XMLHttpRequest(XHR)对象。

2.XHR对象由微软最早在IE5中引入,用于通过JavaScript从服务器取得XML数据。

3.再此之后,Firefox、Safari、Chrome和Opera都实现了相同的特性,是XHR成为了Web的一个事实标准。

4.虽然实现之间存在差异,但XHR对象的基本用法在不同浏览器间还是相对规范的,因此可以放心地用在Web开发当中。

同源策略是对XHR的一个主要约束,它为通信设置了“相同的域、相同的端口、相同的协议”这一限制。试图访问上述限制之外的资源,都会引发安全错误,除非采用被认可的跨域解决方案,这个解决方案叫做CORS(Cross-Origin Resource Sharing,跨域源资源共享),IE8通过XDomainRequest对象支持CORS,其他浏览器通过XHR对象原生支持CORS。图像Ping和JSONP是另外两种跨域通信的技术,但不如CORS稳妥。

Comet是对Ajax的进一步扩展,让服务器几乎能够实时地向客户端推送数据。实现Comet的手段主要有两个:长轮询和HTTP流。所有浏览器都支持长轮询,而只有部分浏览器原生支持HTTP流。SSE(Server-Sent Events,服务器发送事件)是一种实现Comet交互的浏览器API,既支持长轮询,也支持HTTP流。

Web Sockets是一种与服务器进行全双工、双向通信的信道。与其他方案不同,Web Sockets不使用HTTP协议,而使用一种自定义的协议。这种协议专门为快速传输小数据设计。虽然要求使用不同的Web服务器,但却具有速度上的优势。

注:本系列文章主要用于个人总结回顾书本知识。

你可能感兴趣的:(JavaScript高级程序设计第3版(红宝书)读书笔记-Ajax与Comet)