`
zhangwenan2010
  • 浏览: 289 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Ajax与Comet-JavaScript高级程序设计第21章读书笔记(1)

阅读更多

Ajax(Asynchronous Javascript + XML)技术的核心是XMLHttpRequest对象,即: XHR。虽然名字中包含XML,但它所指的仅仅是这种无须刷新页面即可从服务器端获取数据的技术,其通信与数据格式无关,并不一定是XML数据。

XMLHttpRequest对象

IE7+、Firefox、Opera、Chrome 和 Safari 都支持原生的XHR对象。我们可以直接使用XMLHttpRequest构造函数来创建XHR对象。

var xhr = new XMLHttpRequest();

虽然,IE7之前版本的浏览器中,创建xhr的方法与此有所不同,但是,前端技术发展到今天,已经很少有业务需求是要支持IE7之前的版本了。因此,这里我略过这一情况。

XHR的用法

使用 XHR对象的时候,要调用的第一个方法是open(),它接受3个参数:

  1. 要发送请求的类型,如: get/post
  2. 请求的url
  3. 是否异步发送请求,这个参数是一个布尔值

xhr.open('get', 'example.php', false)

注意:open()方法的调用并不会真正发送请求,仅仅是启动一个请求以备发送!

另外,只能向同一个域中使用相同端口和协议的URL发送请求,否则,会出现错误。

在执行open()方法之后,必须再调用send()方法,才会真正发起ajax请求。

xhr.open('get', 'example.txt', false);
xhr.send(null);

send()方法接收一个参数,即:要作为请求主体发送的数据。如果不需要发送数据,那么必须传入null,因为该参数对于部分浏览器而言是必需的。

本例中的请求是同步的,Javascript代码会等到服务器响应之后再执行。
收到响应后,响应的数据会自动填充XHR对象的属性,相关的属性有:

  1. responseText: 作为响应主体被返回的文本。
  2. responseXML: 如果响应的内容类型是"text/xml"或者"application/xml",那么这个属性中将保存着包含响应数据的XML DOM文档。
  3. status: 响应的HTTP状态
  4. statusText: HTTP状态的说明

无论内容类型是什么,响应主体的内容都会保存到responseText属性中,而对于非XML数据而言,responseXML 属性的值将会是null

收到响应后,一般来说,会先判断 status 是否为200,这是此次请求成功的标志。此时,responseText属性的内容已经就绪,而且在内容类型正确的情况下,responseXML也能够访问了。
另外,状态码status如果是304,那么表示请求的资源没有被修改,可以直接使用浏览器中的缓存,当然,这样的响应也是有效的。

if( (xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 ){
    alert(xhr.responseText);
}
else{
    alert('fail! status:' + xhr.status);
}

有的浏览器会错误地报告 204 的状态代码。IE中 XHR 的ActiveX版本会将204设置为1223,而IE中原生的 XHR 则会将 204 规范化为 200。Opera会在取得204时报告 status的值为0。

原文链接:http://www.4455q.com/ajax-comet-javascript-chapter21-note1.html

分享到:
评论

相关推荐

    comet-ajax

    comet-ajax聊天comet-ajax聊天comet-ajax聊天comet-ajax聊天comet-ajax聊天comet-ajax聊天comet-ajax聊天comet-ajax聊天comet-ajax聊天

    comet-ajax.rar

    Comet技术与Ajax技术在Web开发中的应用 Comet技术和Ajax技术都是Web应用程序中实现实时交互的重要手段,它们改变了传统的HTTP请求-响应模式,提升了Web应用的用户体验。在这篇文章中,我们将深入探讨这两种技术,...

    comet-iframe.rar

    Comet技术的出现解决了这一问题,使得Web应用可以实现实时、双向的通信。 在Web开发中,IFrame(Inline Frame)是HTML的一个元素,允许在一个HTML文档中嵌入另一个HTML文档。IFrame常用于加载外部内容,如广告、...

    gwt-comet-jar包+实例+source.jar包,

    里面东西很多,都是关于GWT-COMET的内容,实现gwt的服务器推技术,包括gwt-comet-examples-1.2.3:google官网上的Test实例;gwt-comet-1.2.3.jar:jar包,gwt-example:聊天实例源代码(.java的),gwt-event-source...

    科密票据打印机官方驱动程序 COMET-CM-30 官方版(32位/64位)

    科密票据打印机官方驱动程序 COMET-CM-30是CM-30票据打印机的官方驱动,使用这款驱动能完美驱程COMET-CM-30的票据打印机,有需要的用户可以下载驱动程序安装。小编已经把win32位和win64位的驱动都打包在压缩包里,请...

    atmosphere-flick-comet-0.2-m1-sources.jar

    atmosphere-flick-comet-0.2-m1-sources.jar

    comet-php with chatroom demo

    "ajax"(异步JavaScript和XML)是用于构建Web应用程序的技术,它可以不刷新整个页面就能更新部分内容,与Comet结合使用可以创建更加流畅的用户体验。"php"是服务器端脚本语言,用于生成动态网页内容,与Comet服务器...

    comet-jquery

    jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画以及Ajax交互。在comet-jquery中,jQuery的作用是负责在客户端进行数据请求、接收服务器推送的数据,并更新页面内容。通过使用jQuery,开发者...

    comet4j 所需js以及comet4j-tomcat6.jar、comet4j-tomcat7.jar包

    这个文件提供了与服务器端Comet4j服务交互的接口,允许网页通过JavaScript代码订阅和接收来自服务器的实时消息。在网页应用中,开发者可以将这个脚本引入到HTML页面中,然后调用其提供的API进行事件注册、连接建立、...

    comet-atomic-2020

    (Comet-)ATOMIC 2020:关于符号和神经常识知识图 纸 耶拿·黄(Jena D. Hwang),钱德拉(Chandra Bhagavatula),罗南·勒布拉斯(Ronan Le Bras),杰夫·达(Jeff Da),坂口圭介(Keisuke Sakaguchi),安托万...

    atmosphere-flick-comet-0.3.1-sources.jar

    atmosphere-flick-comet-0.3.1-sources.jar

    atmosphere-flick-comet-0.5.1-sources.jar

    atmosphere-flick-comet-0.5.1-sources.jar

    atmosphere-flick-comet-0.4-sources.jar

    atmosphere-flick-comet-0.4-sources.jar

    atmosphere-flick-comet-0.3-sources.jar

    atmosphere-flick-comet-0.3-sources.jar

    atmosphere-flick-comet-0.2-sources.jar

    atmosphere-flick-comet-0.2-sources.jar

    atmosphere-flick-comet-0.1-sources.jar

    atmosphere-flick-comet-0.1-sources.jar

Global site tag (gtag.js) - Google Analytics