`

jQuery初解析(第一波)

阅读更多

1 Ajax发展历史

AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。

该技术在1998年前后得到了应用。允许客户端脚本发送HTTP请求(XMLHTTP)的第一个组件由Outlook Web Access小组写成。该组件原属于微软Exchange Server,并且迅速地成为了Internet Explorer 4.0的一部分。部分观察家认为,Outlook Web Access是第一个应用了Ajax技术的成功的商业应用程序,并成为包括Odd post的网络邮件产品在内的许多产品的领头羊。但是,2005年初,许多事件使得Ajax被大众所接受。Google在它著名的交互应用程序中使用了异步通讯,如Google讨论组、Google地图、Google搜索建议、Gmail等。Ajax这个词由《Ajax: A New Approach to Web Applications》一文所创,该文的迅速流传提高了人们使用该项技术的意识。另外,对Mozilla/Gecko的支持使得该技术走向成熟,变得更为易用。

使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息,减少网络阻塞。随着web2.0的兴起,RIA(rich interface application )概念的推出,Ajax的作用越来重要,甚至还没有找到一个更好的替代品。虽然Adobe公司的as3.0也推出,但是flash庞大的躯体,在目前拥挤的网络上还有点力不从心。(http://www.adobe.com/cn/)

2 Ajax的基础应用

首先,我们需要用JavaScript来创建XMLHttpRequest 对象向服务器发送一个HTTP请求, XMLHttpRequest 类首先由Internet Explorer以ActiveX对象引入,被称为XMLHTTP。 后来Mozilla﹑Netscape﹑Safari 和其他浏览器也提供了XMLHttpRequest类,不过它们创建XMLHttpRequest类的方法不同。

对于Internet Explorer浏览器,创建XMLHttpRequest 方法如下:

xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.3.0"); //3.0或4.0, 5.0

xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

对于Mozilla﹑Netscape﹑Safari等浏览器,创建XMLHttpRequest 方法如下(IE7和Firefox3是一样的了):xmlHttp = new XMLHttpRequest();

在实际应用中,为了兼容多种不同版本的浏览器,一般将创建XMLHttpRequest类的方法写成如下形式:

var xmlHttp = false;//开始初始化XMLHttpRequest对象

       if(window.XMLHttpRequest){ //Mozilla (IE7)浏览器

              xmlHttp = new XMLHttpRequest();

              if(xmlHttp.overrideMimeType) {//设置MiME类别

                     xmlHttp.overrideMimeType('text/xml');

              }

       }

       else if (window.ActiveXObject) { // IE(7以下版本)浏览器

              try {

                     xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

              } catch (e) {

                     try {

                            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

                     } catch (e) {

                            xmlHttp=false;

                     }

              }

       }

在定义对象后,就要发送请求了。可以调用HTTP请求类的open()和send()方法,如下所示:

xmlHttp.open('GET', URL, true);

xmlHttp.send(null);

open()的第一个参数是HTTP请求方式—GET,POST或任何服务器所支持的您想调用的方式。 按照HTTP规范,该参数要大写;否则,某些浏览器(如Firefox)可能无法处理请求。

第二个参数是请求页面的URL。

第三个参数设置请求是否为异步模式。如果是TRUE,JavaScript函数将继续执行,而不等待服务器响应。这就是"AJAX"中的"A"。

用JavaScript来创建XMLHttpRequest 类向服务器发送一个HTTP请求后,接下来要决定当收到服务器的响应后,需要做什么。这需要告诉HTTP请求对象用哪一个JavaScript函数处理这个响应。可以将对象的onreadystatechange属性设置为要使用的JavaScript的函数名,如下所示:

xmlHttp.onreadystatechange = function(){

// JavaScript代码段

if(xmlHttp.readyState == 4) {

       if(xmlHttp.status == 200) {

              if(xmlHttp.responseText){

            //操作服务器返回的数据

                     process(xmlHttp.responseText);

              }

       }

}

else{

   //show loading

}

};

首先要检查请求的状态。只有当一个完整的服务器响应已经收到了,函数才可以处理该响应。XMLHttpRequest 提供了readyState属性来对服务器响应进行判断。

readyState的取值如下:

0 (未初始化)、1 (正在装载)、2 (装载完毕)、3 (交互中)、4 (完成)

当readyState=4时,一个完整的服务器响应已经收到了,接着,函数会检查HTTP服务器响应的状态值。完整的状态取值可参见W3C文档。当HTTP服务器响应的值为200时,表示状态正常。

Ajax一次操作就算是完成了,是不是很简单?实际上Ajax的基础操作也就是这样简单,只是在不同的应用上对返回特殊处理就显得很复杂,我们透过现象看本质也就这样几行,详细的Ajax基础教程可以参考各个浏览器的官方说明。

分享到:
评论

相关推荐

    Jquery解析json

    ### Jquery解析json #### 知识点概览 1. **JSON介绍** 2. **jQuery与JSON数据交互** 3. **Struts2框架简介** 4. **JSON类库的选择与使用** 5. **服务器端Java程序编写** 6. **前端jQuery解析JSON数据** #### JSON...

    用jquery解析JSON数据的方法20110227

    在JavaScript和jQuery中,解析JSON数据是常见的任务,特别是在与服务器进行异步通信时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。在jQuery中...

    JQuery 解析XML省 市 县 三级联动

    在IT领域,尤其是在Web开发中,"JQuery 解析XML省市区县三级联动"是一个常见的需求,主要用于构建交互式的下拉菜单,使得用户在选择省份时,对应的市和县会根据所选省份动态加载。这样的功能可以提升用户体验,减少...

    锋利的jquery-第一版

    《锋利的jQuery》第一版是一本深入解析jQuery库的权威指南,旨在帮助开发者更好地理解和应用这个强大的JavaScript库。jQuery以其简洁的API和高效的DOM操作,极大地简化了JavaScript的复杂性,成为Web开发中不可或缺...

    锋利的JQuery第一、二版源码

    《锋利的jQuery》是一本深受开发者欢迎的jQuery教程书籍,分为第一版和第二版,旨在深入解析jQuery库的使用技巧和内部工作机制。这个压缩包包含了书中所有示例和源码,对于正在学习jQuery或者想要深入理解jQuery的人...

    精通jquery(中文第二版)_扫描版

    《精通jQuery(中文第二版)》是一本深入探讨jQuery库的专著,旨在帮助开发者全面理解和熟练运用这一强大的JavaScript库。jQuery是Web开发中的一个里程碑,它极大地简化了JavaScript编程,使得网页动态交互变得更加...

    jQuery操作DOM解析

    **jQuery操作DOM解析** 在Web开发中,DOM(Document Object Model)是HTML或XML文档的结构化表示,它允许程序和脚本动态更新、添加、删除和改变元素。jQuery库简化了JavaScript对DOM的操作,提供了丰富的API来处理...

    jQuery权威指南(第2版)1

    此书的第2版相比第1版,可能包含了更多关于jQuery 1.8的新功能和特性,适应了jQuery框架的更新和技术进步。 jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画效果和Ajax交互等Web开发任务。...

    精通jquery(中文第二版)_扫描版_以及源代码

    《精通jQuery(中文第二版)》是一本深入探讨jQuery库的专著,旨在帮助读者全面理解和熟练运用这一广泛使用的JavaScript库。jQuery简化了HTML文档遍历、事件处理、动画设计和Ajax交互,使得Web开发更为高效。这本书...

    jQuery插件开发全解析.pdf

    // 调用第一个函数 jQuery.bar('bar'); // 调用第二个函数,并传递参数 ``` - **使用jQuery.extend(object)** `jQuery.extend()`方法用于扩展jQuery对象本身。可以利用这个方法,将新的函数以对象字面量的方式...

    锋利的jQuery第一版 实例源码

    《锋利的jQuery第一版》实例源码是一个与jQuery相关的学习资源,主要包含了一系列实际操作的代码示例,用于帮助读者深入理解并掌握jQuery库的使用。jQuery是一个广泛应用于Web开发的JavaScript库,它简化了...

    jquery经典教程第一章节

    《jQuery经典教程第一章节》是入门JavaScript库jQuery的基石,这一章节主要涵盖了jQuery的基本概念、核心功能以及在网页开发中的应用。jQuery简化了HTML文档遍历、事件处理、动画制作和Ajax交互等任务,使得前端开发...

    jquery JSON的解析方式

    // 以下其他操作同第一种情况 $.each(data.root, function(idx, item) { if (idx == 0) { return true; // 同countinue,返回false同break } alert("name:" + item.name + ",value:" + item.value); }); });...

    jQuery第1天:JQ基本介绍、使用步骤、jQuery对象与DOM对象(重点)、jQuery选择器

    jQuery是由John Resig创建的一个轻量级、高性能的JavaScript库,它的核心理念是“写得更少,做得更多”。jQuery通过提供一套简洁的API,极大地减少了开发者编写JavaScript代码的复杂度,提高了开发效率。 **使用...

    jQuery基础教程第四版源码

    以下是对jQuery基础知识的详细解析: 一、jQuery的选择器 jQuery的选择器是基于CSS选择器的扩展,允许开发者高效地选取DOM元素。例如,`$("#id")`选取ID为"id"的元素,`$(".class")`选取所有class为"class"的元素,...

    从零开始学jquery

    "Hello World jQuery"示例通常是从一个简单的页面引入jQuery的第一步,它演示了如何通过`$(document).ready()`函数确保在页面加载完毕后执行jQuery代码。 ### 启用Visual Studio对jQuery的智能感知 对于开发者来说...

    JS/JQuery-第7章上机练习.zip

    【JS与JQuery实战:第7章上机练习解析】 在深入探讨JavaScript和JQuery的知识点之前,我们先了解一下这两个核心概念。JavaScript是一种广泛应用于Web开发的编程语言,它允许我们在网页上实现动态效果和交互功能。而...

    锋利的jQuery++第2版+清晰版+源码 PDF

    《锋利的jQuery++第2版》是一本深入解析jQuery技术的权威著作,旨在帮助读者全面掌握这个广泛使用的JavaScript库。这本书的清晰版确保了读者在学习过程中能无碍地理解内容,而附带的源码则为实践提供了便利,让读者...

    jQuery 第一个demo

    本篇将深入解析“jQuery第一个Demo”,帮助初学者快速入门jQuery的基本用法。 首先,我们来看标题:“jQuery第一个demo”。这通常指的是一个简单的示例,用于展示如何在网页中引入jQuery库并执行基本操作。在这个...

    锋利的jquery第三章例子

    《锋利的jQuery小例子解析》 在编程领域,jQuery是一个广泛应用的JavaScript库,它极大地简化了DOM操作、事件处理、动画制作以及Ajax交互。本文将深入探讨“锋利的jQuery第三章例子”中涉及的关键知识点,通过分析...

Global site tag (gtag.js) - Google Analytics