`

jQuery初解析(第二波)

阅读更多

3 jQuery中Ajax

在第一章提到Javascript框架或者是工具中都包含了封装上述功能的Ajax工具,就不一一介绍,下边主要讲讲JQuery中的Ajax工具包。

使用 jQuery 将使 Ajax 变得及其简单。jQuery 提供有一些函数,这些函数是根据我们日常开发的需要而封装的一些快捷操作,比如:load、ajax、get、post等等。可以使简单的工作变得更加简单,复杂的工作变得不再复杂。

jQuery的ajax工具包封装有三个层次,目的有两,第一为了符合命名规范,见明思义;第二就是为区分跨域操作,因为第三层的两个函数可以跨域操作。这样写有点牵强,先这里理解,后边讲了JSON和JSONP就明白了。

最底层就是Ajax,封装了基础Ajax一些操作;

第二层就是load、get、post,封装了jQuery的Ajax;

第三层就是getScript、getJSON,封装了get。

下边我们就一一的介绍这些函数(方法)的用法。

3.1. jQuery.getScript( url, [callback] ) : 通过 GET 方式请求载入并执行一个 JavaScript 文件。这个函数就是一个get的简写,看看源代码:

return jQuery.get(url, null, callback, "script");

 

参数名称

 

类型

 

说明

 

url

 

String

 

请求的HTML页的URL地址

 

Callback(可选)

 

Function

 

载入成功时回调函数(只有当Response的返回状态是success才是调用该方法),不传递参数

jQuery 1.2 版本之前,getScript 只能调用同域 JS 文件。 1.2中,您可以跨域调用 JavaScript 文件。注意:Safari 2 或更早的版本不能在全局作用域中同步执行脚本。如果通过 getScript 加入脚本,请加入延时函数。

示例代码:

加载并执行 test.js。

$.getScript("test.js");

提示:本身xmlHttp对象是不能进行异域操作的,但是浏览器head中加载script可以,这个函数就是在head中创建一个script元素,元素的src属性是url,应该真正不属于Ajax范畴。

3.2. jQuery.getJSON( url, [callback] ) : 通过 GET 方式请求载入并执行一个 JavaScript 文件。这个函数就是一个get的简写,看看源代码:

return jQuery.get(url, null, callback, "json");

 

参数名称

 

类型

 

说明

 

url

 

String

 

请求的HTML页的URL地址

 

Callback(可选)

 

Function

 

载入成功时回调函数(只有当Response的返回状态是success才是调用该方法),自动将请求结果(执行后的JS对象)传递给该函数

这个函数的和上边的getScript的工作原理基本一样,我们看看上边的源代码就知道,支持跨域操作,本身也支持jsonp,什么是jsonp下边的章节我们再说。

示例代码:

$.getJSON("test.js",function(json){

   $.each(json function(i,n){

      alert(n);

      alert(json.i);

})

});

3.3. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中。

 

参数名称

 

类型

 

说明

 

url

 

String

 

请求的HTML页的URL地址

 

Data(可选)

 

Obj

 

发送至服务器的 key/value 数据

 

Callback(可选)

 

Function

 

请求完成时(不需要是success的)的回调函数,自动会将请求的结果,状态,XMLHttp对象传递给该函数。

这个方法默认使用 GET 方式来传递的,如果[data]参数有传递数据进去,就会自动转换为POST方式的。jQuery 1.2 中,可以指定选择符,来筛选载入的 HTML 文档,DOM 中将仅插入筛选出的 HTML 代码(url和选择器之间用空格分开)。语法形如 "url #some > selector"。

这个方法可以很方便的动态加载一些HTML文件,例如表单。

示例代码:

$(".ajax.load").load("/index.html .p",function (responseText, textStatus, XMLHttpRequest){

              this;//在这里this指向的是当前的DOM对象,即$(".ajax.load")[0]

              //alert(responseText);//请求返回的内容

              //alert(textStatus);//请求状态:success,error

              //alert(XMLHttpRequest);//XMLHttpRequest对象

});

3.4 jQuery.get( url, [data], [callback] ):使用GET方式来进行异步请求

 

参数名称

 

类型

 

说明

 

url

 

String

 

请求的HTML页的URL地址

 

Data(可选)

 

Obj

 

发送至服务器的 key/value 数据会做为QueryString附加到请求URL中

 

Callback(可选)

 

Function

 

载入成功时回调函数(只有当Response的返回状态是success才是调用该方法),自动将请求结果和状态传递给该函数

这是一个简单的 GET 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。示例代码:

              $.get("./index.html", {app:"test",action:"test"}, function (data, textStatus){

                            //返回的 data 可以是 xmlDoc, jsonObj, html, text, 等等.

                            this; // 在这里this指向的是Ajax请求的选项配置信息,请参考下图

                            alert(data);

                            //alert(textStatus);//请求状态:success,error等等。

//当然这里捕捉不到error,因为error的时候根本不会运行该回调函数

                            //alert(this);

              });

3.5 jQuery.post( url, [data], [callback], [type] ) :使用POST方式来进行异步请求

 

参数名称

 

类型

 

说明

 

url

 

String

 

请求的HTML页的URL地址

 

Data(可选)

 

Obj

 

发送至服务器的 key/value 数据会做为QueryString附加到请求URL中

 

Callback(可选)

 

Function

 

载入成功时回调函数(只有当Response的返回状态是success才是调用该方法),自动将请求结果和状态传递给该函数

 

Type(可选)

 

String

 

客户端请求的类型(JSON,XML,等等)

这是一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。示例代码:

Ajax.aspx:

Response.ContentType = "application/json";

Response.Write("{result: '" + Request["action "] + ",Hello World '}");

jQuery 代码:

$.post("Ajax.aspx", { app: "test", action: "test" },

              function (data, textStatus){

                     // data 可以是 xmlDoc, jsonObj, html, text, 等等.

                     //this; // 这个Ajax请求的选项配置信息,请参考jQuery.get()说到的this

                     alert(data.result);

              }, "json");

Ajax.php

if(isset($_SERVER["HTTP_ACCEPT"])){

       $accept=strtolower($_SERVER["HTTP_ACCEPT"]);

       $tmp_array=explode(',',$_SERVER["HTTP_ACCEPT"]);

if(in_array('application/json',$tmp_array)){

echo json_encode($_GET);

}

}

jQuery 代码:

$.post("Ajax.php", { app: "test", action: "test" },

              function (data, textStatus){

                     // data 可以是 xmlDoc, jsonObj, html, text, 等等.

                     //this; // 这个Ajax请求的选项配置信息,请参考jQuery.get()说到的this

                     alert(data.result);

              }, "json");

 

这里设置了请求的格式为"json",需要注意的是,如果是json类型,返回结果会自动执行eval函数,本身服务器返回只是一个字符串,但是传递进来的参数已经是eval之后的JSON对象。其他的类型,比如text、html则按照字符串的方式进行处理即可。

分享到:
评论

相关推荐

    Jquery解析json

    在与jQuery结合使用时,Struts2可以作为后端处理用户的请求,并返回JSON格式的数据供前端jQuery解析使用。 #### JSON类库的选择与使用 为了生成和解析JSON数据,通常需要借助第三方的JSON类库。这里提到了使用来自...

    用jquery解析JSON数据的方法20110227

    2. **使用jQuery的内置函数解析JSON**: 如果jQuery异步请求(例如`$.ajax`、`$.get`或`$.post`)设置了`dataType`参数为"json",或者使用`$.getJSON()`方法,jQuery会自动将响应数据解析为JavaScript对象,无需...

    JQuery 解析XML省 市 县 三级联动

    例如,可以查找特定省份下的所有城市,然后填充到第二个下拉菜单。 5. **AJAX(异步JavaScript和XML)**:虽然XML在标题中提及,但在现代Web开发中,通常会使用JSON格式代替XML。然而,AJAX技术依然适用,它允许...

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

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

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

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

    jQuery权威指南(第2版)1

    《jQuery权威指南(第2版)》是一本深入解析jQuery技术的专业书籍,旨在帮助开发者全面理解和掌握jQuery的核心特性和最新发展。此书的第2版相比第1版,可能包含了更多关于jQuery 1.8的新功能和特性,适应了jQuery框架...

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

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

    JQuery第二版的源码

    《jQuery第二版源码解析》 jQuery,作为一款广受欢迎的JavaScript库,为开发者提供了简单易用的API,使得DOM操作、事件处理、动画效果以及AJAX交互等任务变得轻而易举。当我们深入到jQuery的源码,不仅可以理解其...

    锋利的JQUERY第二版 源码下载

    《锋利的jQuery第二版》是一本深入解析jQuery库的权威书籍,旨在帮助读者全面掌握jQuery的使用技巧和实现复杂的Web交互。这本书的源码下载提供了丰富的实例,涵盖了jQuery的各种功能和应用场景,对于学习和实践...

    jQuery in action 第二版

    综上所述,《jQuery in Action 第二版》是一本值得推荐的书籍,它不仅覆盖了jQuery的基础知识,还包括了大量的实践案例和深入的技术解析,对于想要深入了解jQuery及其应用的开发者来说,是一本不可多得的好书。

    《精通jQuery 第2版》完整版.pdf

    根据提供的文件信息,我们可以推断出这是一本关于jQuery技术的书籍——《精通jQuery 第2版》。本书旨在帮助读者深入了解并掌握jQuery这一流行的JavaScript库的使用方法与技巧。接下来,我们将围绕这本书籍的主要内容...

    锋利的jQuery(第二版)内附源码及实例+学习jQuery所需的.js文件

    《锋利的jQuery(第二版)》是一本深入解析jQuery技术的权威著作,它为读者提供了全面、系统的学习路径,帮助开发者充分利用jQuery的强大功能。jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理...

    锋利的jQuery第2版源码

    《锋利的jQuery第2版》是一本深入探讨jQuery库的专著,旨在帮助开发者更好地理解和运用这个强大的JavaScript工具。本书源码的提供是为了让读者能够结合实际代码加深理解,进一步提升开发技能。以下是根据书中的核心...

    锋利的JQuery第二版的源码

    《锋利的jQuery》是jQuery学习的经典著作,其第二版更是深入浅出地解析了这一广泛使用的JavaScript库。源码的分析将为我们提供一个实践和理解jQuery核心概念的绝佳平台。下面,我们将深入探讨jQuery的一些关键知识点...

    《锋利的jQuery第二版》实例源码.rar

    《锋利的jQuery第二版》是一本深入解析jQuery库及其应用的专业书籍,旨在帮助开发者更好地理解和运用这个强大的JavaScript库。该书的实例源码压缩包包含了大量的代码示例,是学习和进阶jQuery技术的重要资源。 ...

    锋利的jQuery《第二版》随书源码

    《锋利的jQuery(第二版)》是一本深入解析jQuery库的权威著作,它为开发者提供了全面、系统的学习路径,帮助他们充分利用jQuery的强大功能。这本书的随书源码是学习过程中不可或缺的一部分,提供了丰富的示例和实践...

    锋利的JQuery第一、二版源码

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

    jQuery权威指南 第二版 源码

    《jQuery权威指南第二版》是深入理解jQuery库的宝贵资源,源码的提供更是让开发者有机会直接探索jQuery的内部机制,提升对JavaScript和DOM操作的深入理解。此书旨在帮助开发者充分利用jQuery的强大功能,提高开发...

    锋利的jQuery(第2版)源码

    在《锋利的jQuery(第2版)》中,作者通过实例解析了这些功能,使得开发者能够快速上手并精通jQuery。 1. **DOM操作**:jQuery提供了简洁的API来选取、添加、删除或修改HTML元素。例如,`$()`函数用于选择元素,`....

    锋利的jQuery 第二版 单东林张晓菲

    标签中提到了"java",这表明书中可能也涵盖了与Java相关的集成内容,比如如何在Java后端与jQuery前端之间建立有效通信,使用Servlet或Spring MVC等框架处理Ajax请求,并返回JSON数据供jQuery解析。 总的来说,...

Global site tag (gtag.js) - Google Analytics