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结合使用时,Struts2可以作为后端处理用户的请求,并返回JSON格式的数据供前端jQuery解析使用。 #### JSON类库的选择与使用 为了生成和解析JSON数据,通常需要借助第三方的JSON类库。这里提到了使用来自...
2. **使用jQuery的内置函数解析JSON**: 如果jQuery异步请求(例如`$.ajax`、`$.get`或`$.post`)设置了`dataType`参数为"json",或者使用`$.getJSON()`方法,jQuery会自动将响应数据解析为JavaScript对象,无需...
例如,可以查找特定省份下的所有城市,然后填充到第二个下拉菜单。 5. **AJAX(异步JavaScript和XML)**:虽然XML在标题中提及,但在现代Web开发中,通常会使用JSON格式代替XML。然而,AJAX技术依然适用,它允许...
《精通jQuery(中文第二版)》是一本深入探讨jQuery库的专著,旨在帮助读者全面理解和熟练运用这一广泛使用的JavaScript库。jQuery简化了HTML文档遍历、事件处理、动画设计和Ajax交互,使得Web开发更为高效。这本书...
《精通jQuery(中文第二版)》是一本深入探讨jQuery库的专著,旨在帮助开发者全面理解和熟练运用这一强大的JavaScript库。jQuery是Web开发中的一个里程碑,它极大地简化了JavaScript编程,使得网页动态交互变得更加...
《jQuery权威指南(第2版)》是一本深入解析jQuery技术的专业书籍,旨在帮助开发者全面理解和掌握jQuery的核心特性和最新发展。此书的第2版相比第1版,可能包含了更多关于jQuery 1.8的新功能和特性,适应了jQuery框架...
《锋利的jQuery++第2版》是一本深入解析jQuery技术的权威著作,旨在帮助读者全面掌握这个广泛使用的JavaScript库。这本书的清晰版确保了读者在学习过程中能无碍地理解内容,而附带的源码则为实践提供了便利,让读者...
《jQuery第二版源码解析》 jQuery,作为一款广受欢迎的JavaScript库,为开发者提供了简单易用的API,使得DOM操作、事件处理、动画效果以及AJAX交互等任务变得轻而易举。当我们深入到jQuery的源码,不仅可以理解其...
《锋利的jQuery第二版》是一本深入解析jQuery库的权威书籍,旨在帮助读者全面掌握jQuery的使用技巧和实现复杂的Web交互。这本书的源码下载提供了丰富的实例,涵盖了jQuery的各种功能和应用场景,对于学习和实践...
综上所述,《jQuery in Action 第二版》是一本值得推荐的书籍,它不仅覆盖了jQuery的基础知识,还包括了大量的实践案例和深入的技术解析,对于想要深入了解jQuery及其应用的开发者来说,是一本不可多得的好书。
根据提供的文件信息,我们可以推断出这是一本关于jQuery技术的书籍——《精通jQuery 第2版》。本书旨在帮助读者深入了解并掌握jQuery这一流行的JavaScript库的使用方法与技巧。接下来,我们将围绕这本书籍的主要内容...
《锋利的jQuery(第二版)》是一本深入解析jQuery技术的权威著作,它为读者提供了全面、系统的学习路径,帮助开发者充分利用jQuery的强大功能。jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理...
《锋利的jQuery第2版》是一本深入探讨jQuery库的专著,旨在帮助开发者更好地理解和运用这个强大的JavaScript工具。本书源码的提供是为了让读者能够结合实际代码加深理解,进一步提升开发技能。以下是根据书中的核心...
《锋利的jQuery》是jQuery学习的经典著作,其第二版更是深入浅出地解析了这一广泛使用的JavaScript库。源码的分析将为我们提供一个实践和理解jQuery核心概念的绝佳平台。下面,我们将深入探讨jQuery的一些关键知识点...
《锋利的jQuery第二版》是一本深入解析jQuery库及其应用的专业书籍,旨在帮助开发者更好地理解和运用这个强大的JavaScript库。该书的实例源码压缩包包含了大量的代码示例,是学习和进阶jQuery技术的重要资源。 ...
《锋利的jQuery(第二版)》是一本深入解析jQuery库的权威著作,它为开发者提供了全面、系统的学习路径,帮助他们充分利用jQuery的强大功能。这本书的随书源码是学习过程中不可或缺的一部分,提供了丰富的示例和实践...
《锋利的jQuery》是一本深受开发者欢迎的jQuery教程书籍,分为第一版和第二版,旨在深入解析jQuery库的使用技巧和内部工作机制。这个压缩包包含了书中所有示例和源码,对于正在学习jQuery或者想要深入理解jQuery的人...
《jQuery权威指南第二版》是深入理解jQuery库的宝贵资源,源码的提供更是让开发者有机会直接探索jQuery的内部机制,提升对JavaScript和DOM操作的深入理解。此书旨在帮助开发者充分利用jQuery的强大功能,提高开发...
在《锋利的jQuery(第2版)》中,作者通过实例解析了这些功能,使得开发者能够快速上手并精通jQuery。 1. **DOM操作**:jQuery提供了简洁的API来选取、添加、删除或修改HTML元素。例如,`$()`函数用于选择元素,`....
标签中提到了"java",这表明书中可能也涵盖了与Java相关的集成内容,比如如何在Java后端与jQuery前端之间建立有效通信,使用Servlet或Spring MVC等框架处理Ajax请求,并返回JSON数据供jQuery解析。 总的来说,...