使用 jQuery 简化 Ajax 开发
2007-11-15 23:31
501 查看
原文地址:http://www.ibm.com/developerworks/cn/xml/x-ajaxjquery.html
使用 jQuery 简化 Ajax 开发看看 Ajax 和 DOM 脚本编程究竟有多简单 |
级别: 中级 Jesse Skinner, Web 开发人员, Freelance 2007 年 5 月 16 日 jQuery 是一个JavaScript 库,它有助于简化 JavaScript™ 以及 Asynchronous JavaScript + XML (Ajax) 编程。与类似的 JavaScript 库不同,jQuery 具有独特的基本原理,可以简洁地表示常见的复杂代码。学习 jQuery 基本原理,探索其特性和功能,执行一些常见的 Ajax 任务并掌握如何使用插件扩展 jQuery。 jQuery 是什么? jQuery 由 John Resig 创建于 2006 年初,对于任何使用 JavaScript 代码的程序员来说,它是一个非常有用的 JavaScript 库。无论您是刚刚接触 JavaScript 语言,并且希望获得一个能解决文档对象模型(Document Object Model,DOM)脚本和 Ajax 开发中一些复杂问题的库,还是作为一个厌倦了 DOM 脚本和 Ajax 开发中无聊的重复工作的资深 JavaScript 专家,jQuery 都会是您的首选。 jQuery 能帮助您保证代码简洁易读。您再也不必编写大堆重复的循环代码和 DOM 脚本库调用了。使用 jQuery,您可以把握问题的要点,并使用尽可能最少的代码实现您想要的功能。 毫无疑问,jQuery 的原理是独一无二的:它的目的就是保证代码简洁并可重用。当您理解并体会这一原理后,便可以开始学习本教程了,看看 jQuery 对我们的编程方式有多少改进吧。 下面是一个简单示例,它说明了 jQuery 对代码的影响。要执行一些真正简单和常见的任务,比方说为页面的某一区域中的每个链接附加一个单击(click)事件,您可以使用纯 JavaScript 代码和 DOM 脚本来实现,如 清单 1 所示。 清单 1. 没有使用 jQuery 的 DOM 脚本
清单 2. 使用了 jQuery 的 DOM 脚本
click()函数将完成这些操作。同样也不需要进行多个 DOM 脚本调用。您只需要使用一个简短的字符串对所需的元素进行定义即可。 理解这一代码的工作原理可能会有一点复杂。首先,我们使用了 $()函数 —— jQuery 中功能最强大的函数。通常,我们都是使用这个函数从文档中选择元素。在本例中,一个包含有一些层叠样式表(Cascading Style Sheet,CSS)语法的字符串被传递给函数,然后 jQuery 尽可能高效地把这些元素找出来。 如果您具备 CSS 选择器的基本知识,那么应该很熟悉这些语法。在 清单 2 中, #external_links用于检索 id为 external_links的元素。 a后的空格表示 jQuery 需要检索 external_links元素中的所有 <a>元素。用英语说起来非常绕口,甚至在 DOM 脚本中也是这样,但是在 CSS 中这再简单不过了 $()函数返回一个含有所有与 CSS 选择器匹配的元素的 jQuery 对象。jQuery 对象 类似于数组,但是它附带有大量特殊的 jQuery 函数。比方说,您可以通过调用 click函数把 click 处理函数指定给 jQuery 对象中的所有元素。 还可以向 $()函数传递一个元素或者一个元素数组,该函数将把这些元素封装在一个 jQuery 对象中。您可能会想要使用这个功能将 jQuery 函数用于一些对象,比方说 window对象。例如,我们通常会像下面这样把函数分配给加载事件:
ready事件,jQuery 解决了这个问题,方法如下:
document元素创建了一个 jQuery 对象,然后建立一个函数,用于在 HTML DOM 文档就绪的时候调用实例。可以根据需要任意地调用这个函数。并且能够以真正的 jQuery 格式,使用快捷方式调用这个函数。这很简单,只需向 $()函数传递一个函数就可以了:
$()函数的三种用法。第四种方法可以使用字符串来创建元素。结果会产生一个包含该元素的 jQuery 对象。清单 3 显示的示例在页面中添加了一个段落。 清单 3. 创建和附加一个简单的段落
Ajax 最常见的用法就是把一块 HTML 代码加载到页面的某个区域中去。为此,只需简单地选择所需的元素,然后使用 load()函数即可。下面是一个用于更新统计信息的示例:
$.post()或者 $.get(),这由所需的方法决定。如果需要的话,您还可以传递一个可选的数据对象和回调函数。清单 4 显示了一个发送数据和使用回调的简单示例。 清单 4. 使用 Ajax 向页面发送数据
$.ajax()函数。您可以指定 xml、 script、 html或者 json,jQuery 将自动为回调函数准备合适的结果,这样您便可以立即使用该结果。还可以指定 beforeSend、 error、 success或者 complete回调函数,向用户提供更多有关 Ajax 体验的反馈。此外,还有一些其它的参数可供使用,您可以使用它们设置 Ajax 请求的超时,也可以设置页面 “最近一次修改” 的状态。清单 5 显示了一个使用一些我所提到的参数检索 XML 文档的示例。 清单 5. $.ajax() 使 Ajax 由复杂变简单
success函数的一个扩展,它为 XML 中的每个 <item>元素都添加了一个列表项到 Web 页面中。 清单 6. 使用 jQuery 处理 XML 文档
可以使用 jQuery 处理基本的动画和显示效果。 animate()函数是动画代码的核心,它用于更改任何随时间变化的数值型的 CSS 样式值。比方说,您可以变化高度、宽度、不透明度和位置。还可以指定动画的速度,定为毫秒或者预定义的速度:慢速,中速或快速。 下面是一个同时变化某个元素高度和宽度的示例。请注意,这些参数没有开始值,只有最终值。开始值取自元素的当前尺寸。同时我也附加了一个回调函数。
show()和 hide()元素,立即显示或者以特定的速度显示。还可以通过使用 fadeIn()和 fadeOut(),或者 slideDown()和 slideUp()显示和隐藏元素,这取决于您所需要的显示效果。下面的示例定义了一个下滑的导航菜单。
或许 jQuery 最擅长的就是简化 DOM 脚本和事件处理。遍历和处理 DOM 非常简单,同时附加、移除和调用事件也十分容易,且不像手动操作那样容易出错。 从本质上说,jQuery 可以使 DOM 脚本中的常用操作变得更加容易。您可以创建元素并且使用 append()函数把它们与其它的一些元素链接到一起,使用 clone()复制元素,使用 html()设置内容,使用 empty()函数删除内容,使用 remove()函数删除所有的元素,即便是使用 wrap()函数,用其他元素将这些元素包装起来。 通过遍历 DOM,一些函数可以用于更改 jQuery 对象本身的内容。可以获得元素所有的 siblings()、 parents()和 children()。还可以选择 next()和 prev()兄弟元素。 find()函数或许是功能最强大的函数,它允许使用 jQuery 选择器搜索 jQuery 对象中元素的后代元素。 如果结合使用 end()函数,那么这些函数将变得更加强大。这个函数的功能类似于 undo 函数,用于返回到调用 find()或 parents()函数(或者其它遍历函数)之前的 jQuery 对象。 如果配合方法链接(method chaining)一起使用,这些函数可以使复杂的操作看上去非常简单。清单 7 显示了一个示例,其中包含有一个登录表单并处理了一些与之有关的元素。 清单 7. 轻松地遍历和处理 DOM
end()返回表单。然后,我创建了密码字段,将其边界变为红色,再次调用 end()返回表单。最后,我在表单中添加了一个提交事件处理程序。其中尤为有趣的就是(除了其简洁性以外),jQuery 完全优化了所有的查询操作,确保将所有内容很好地链接在一起后,不需要对一个元素执行两次查询。 处理常见事件就像调用函数(比方说 click()、 submit()或 mouseover())和为其传递事件处理函数一样简单。此外,还可以使用 bind('eventname', function(){})指定自定义的事件处理程序。可以使用 unbind('eventname')删除某些事件或者使用 unbind()删除所有的事件。有关这些函数的使用方法的完整列表,请参阅 参考资料 中的 jQuery 应用程序编程接口(Application Program Interface,API)文档。 我们经常会使用 ID 来选择元素,比如 #myid,或者通过类名,比如 div.myclass来选择元素。然而,jQuery 提供了更为复杂和完整的选择器语法,允许我们在单个选择器中选择几乎所有的元素组合。 jQuery 的选择器语法主要是基于 CSS3 和 XPath 的。对 CSS3 和 XPath 了解的越多,使用 jQuery 时就越加得心应手。有关 jQuery 选择器的完整列表,包括 CSS 和 XPath,请参阅 参考资料 中的链接。 CSS3 包含一些并不是所有浏览器都支持的语法,因此我们很少使用它。然而,我们仍然可以在 jQuery 中使用 CSS3 选择元素,因为 jQuery 具备自己的自定义选择器引擎。比方说,要在表格中的每一个空列中都添加一个横杠,可以使用: :empty伪选择器(pseudo-selector):
:not伪选择器: 如下代码显示了如何隐藏所有不含 required类的输入内容:
/..语法:
odd伪选择器。下面这个例子使用 striped类改变了表格中所有奇数行的背景颜色:
与大多数软件不同,使用一个复杂的 API 为 jQuery 编写插件并不是非常困难。事实上,jQuery 插件非常易于编写,您甚至希望编写一些插件来使代码更加简单。下面是可以编写的最基本的 jQuery 插件:
$.fn。第二,这个函数必须要返回一个 this(jQuery 对象),这样才不至于打断 方法链接(method chaining)。 可以轻松地在这个示例之上构建。要编写一个更换背景颜色的插件,以替代使用 css('background'),可以使用下面的代码:
css()返回值,因为已经返回了 jQuery 对象。因此,方法链接(method chaining)仍然运作良好。 我建议在需要重复工作的时候使用 jQuery 插件。比方说,如果您需要使用 each()函数反复执行相同的操作,那么可以使用一个插件来完成。 由于 jQuery 插件相当易于编写,所以有上百种可供你选择使用。jQuery 提供的插件可用于制表、圆角、滑动显示、工具提示、日期选择器,以及我们可以想到的一切效果。有关插件的完整列表,请参阅 参考资料。 最为复杂、使用最为广泛的插件要属界面(Interface),它是一种动画插件,用于处理排序、拖放功能、复杂效果、以及其它有趣和复杂的用户界面(User Interface,UI)。界面对于 jQuery 来说就如 Scriptaculous 对于 Prototype 一样。 表单插件也同样流行且非常有用,通过它可以使用 Ajax 在后台中轻松地提交表单。这个插件用于处理一些常见的情况:您需要截获某个表单的提交事件,找出所有不同的输入字段,并使用这些字段构造一个 Ajax 调用。 我只是简要地介绍了使用 jQuery 可能完成的任务。jQuery 使用起来非常有趣,因此我们总是能学到看上去很简单的新技巧和新特性。从刚开始使用 jQuery 的那一刻起,jQuery 便可以完全简化您的 JavaScript 和 Ajax 编程;每学会一点新知识,您的代码就会更简单一点。 学习了 jQuery 之后,我在使用 JavaScript 语言进行编程的同时也获得了许多的乐趣。不用操心所有无聊的内容,我可以专注地编写有趣的内容。使用 jQuery 后,我几乎就告别了编写 for循环代码的时代。甚至在想到要使用其它 JavaScript 库时,不禁会有所畏缩不前。jQuery 确确实实改变了我对 JavaScript 编程的看法。 |
相关文章推荐
- 使用 jQuery 简化 Ajax 开发
- 使用 jQuery 简化 Ajax 开发
- 使用 jQuery 简化 Ajax 开发(转载)
- 使用 jQuery 简化 Ajax 开发
- 使用jQuery简化Ajax开发——Ajax开发入门[2][完]
- [转]使用 jQuery 简化 Ajax 开发
- 使用 jQuery 简化 Ajax 开发
- 使用 jQuery 简化 Ajax 开发
- 使用 jQuery 简化 Ajax 开发
- 使用 jQuery 简化 Ajax 开发 [转贴]
- 使用 jQuery 简化 Ajax 开发
- 使用jquery简化ajax开发
- 使用jQuery简化Ajax开发——Ajax开发入门
- 使用jQuery简化Ajax开发——Ajax开发入门[令狐葱翻译版part1]
- 使用 jQuery 简化 Ajax 开发 [转贴]
- 使用 jQuery 简化 Ajax 开发
- 使用 jQuery 简化 Ajax 开发
- 使用 jQuery 简化 Ajax 开发
- 使用 jQuery 简化 Ajax 开发
- 使用 jQuery 简化 Ajax 开发