Bookmark and Share

Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

《Learning jQuery 中文版》第一章(一)

Posted on 2007-07-29 01:36  analyzer  阅读(581)  评论(0编辑  收藏  举报
《Learning jQuery 中文版》第一章(一)
 
《Learning jQuery》应该是我比较完整翻译的英文技术书的第一本吧,之前有翻译过一些书,不过都不是完整的翻译所有章节,水平有限吧,现在水平也是需要不断提高,翻译过程也是学习的过程,对提高翻译水平很有帮助,理解技术也更深入,好处多的是,所以虽然过程比较辛苦,但是还是抽工作去完成这样的工作,将自己的成果与大家分享,是一种快乐。

之前有翻译过的《css mastery》、《actionscript 2.0 garage》的部分内容,在我的blog中也有存档的,有兴趣者可也要阅读这些部分的内容。

有兴趣参与翻译工作的朋友,可以留言给我。

第一章 开始Jquery

今天的万维网是一个动态的环境,他们的用户为网站的风格和功能设置了一个高标准。为了创建有趣的交互式的网站,开发者正都转向如 jQuery 这样的javascript库,使普通的任务自动化和简化复杂的任务。jQuery 库是流行的选择的一个原因是它能够协助大范围的任务。

因为 jQuery 有很多不同的函数,它可像有挑战性的知道从哪开始。然而,这个库的设计是一致(coherence)与对称(symmetry)的。它的概念的大部分都借鉴于 HTML Cascading Style Sheets (CSS) 的架构。国为很多 web 开发者使用这些技术比较 javascript 有更多的经验。库的设计让只有少量编程经验的设计师可以快速入门。事实上,在开始的这章我们会只用三行代码写一个功能的 jQuery 程序。另一方面,有经验的程序员在概念的一致性得到帮助,我们将会在后面的更高级的章节中看到。

但我们用一个实例来说明库的操作之前,我们应该在开始的位置讨论一下我们为什么需要它。

jQuery能做什么

jQuery 库为共同的 web 脚本提供了一种通用的抽象层,并且它几乎在每种脚本环境都是有用的。它的可扩展性意味着我们无法在一本书里涵盖所有可能的用途与功能,它以插件的形式持续地通过开发加入新的功能。这核心的特性,虽然满足以下的需求:

获取页面的部分内容,不使用 JavaScript 库,必须写很多行代码来遍历 DOM 树,并定位一一个HTML文档的指定部分。jQuery 提供了一个强大而有效的选择机制来返回被检查或者被操作的文档。

修改页面的外观CSS 提供了一个影响文档渲染的强大方法,当 web 浏览器不支持同样的标准时,它却是不尽人意的。jQuery 能弥补这个差距,提供了跨所有浏览器的同样的标准的支持。另外,即使页面被渲染后,jQuery 仍可改变文档一部分中的类或者独立的样式属性。

修改页面的内容,不仅限于外观的改变,jQuery 还可以用很少的按键就可修改文档的内容本身。文本可改变,图像可插入或替换,列表可重新排序或者整个HTML结构可被重写和扩展,完成这些只需一套非常易用的 API 函数。

在页面中响应用户的交互,当它们发生时,如果我们不能控制,即使是最周密最强大的行为也是没有用的。jQuery 库提供了一个优雅的方法来截取多种事件,例如用户单击链接,我们不需要将事件句柄混杂到 HTML 代码中。同时,事件句柄 API 删除浏览器不一致性,往往会让 web 开发者感到很烦恼。

给页面加上动画,为了有效地执行交互行为,设计师必须提供可视的反馈给用户,jQuery 库提供了一组效果来推进它,效果如褐色,清空来,也可定制一套新的工具。

无刷新返回服务器端的信息,这个代码模式已经以 Asynchronous JavaScript and XML (AJAX) 著称了,并协助 web 开发者制作可响应的功能丰富的网站。

简化共同的 JavaScript 任务,除了 jQuery指定的文档的所有特性外,这个库还提供了改进基本的 JavaScript 结构,如秩代和数组操作。

为什么jQuery工作那么好

随着近期动态 HTML 兴趣的复兴,JavaScript 框架快速增加。有些很专业,侧重于一个或者两个以上的任务。其它的则企图列出一切的行为与动画,这些服务都归结于预先包装。为了保持其广泛的特性而不失简洁,jQuery 使用了一些策略。

CSS 的杠杆知识,以 CSS 选择器定位页面元素机制为基础,jQuery 继承了表现文档结构的简洁(terse)而易读(legible)的方法。由于做专业的 web 开发的必备知识是 CSS 语法,jQuery 为想在页面加上行为的设计师提供了一个入口。

支持扩展,为了避免特征变化,jQuery 提交了专项用途的插件。创建一个新的插件的方法是很简单的和有明确记录的,并且已经带动发展了各种发明和有用的模块。甚至在基本的 jQuery 下载中的大部分特性都是通过插入式结构内部实现的,可如预期地被删除,产生一个更小的库。

去除浏览的错误web 开发的一个不幸的现实是每个浏览器都有一套自己的偏离发布的标准,任何网络应用的一个重要的部分可在每个平台上处理不同的特性。但是不断变化的浏览器现状使得一些高级特性不能可编写出完美的浏览器中立的基本代码,jQuery 加入了一个抽象层来规范这些共同的任务,并减少代码的大小,尽量简化它。

总是以集合工作,当我们通知 jQuery,查找所有带类collapsible的元素并隐藏它,不必循环每个返回的元素。相反,如 .hide()方法被设计工作在对象集上而不是单独元素。这种技术被称为隐含秩代(implicit iteration),意味着很多循环结构变得不必要了。

允许在一行有多个动作,为了避免过度使用临时的变量或浪费的重复,jQuery 在它的大多数方法中使用了一个称为链式的编程模式,这意味着在对象的很多操作的结果都这个对象的本身,为下一个动作做准备以应用它。

这些战略一直保持 jQuery 包很轻巧,压缩后只有20KB左右,同时,也提供了保持使用这个库的自定义代码的简单性的技术。

这个优雅的库部分由设计而来,部分是由进化过程中由于项目涌现的社区的推动。jQuery 的用户不但聚在一起讨论插件的开发,而且也改进了核心库。附录 A 详细说明了许多对 jQuery 开发者有用的社区资源。

尽管所有的努力需要设计出如此灵活和强有力的系统,但最终的产品对所有人都是自由使用的。这个开源项目是在GNU Public License(appropriate for inclusion in many other open-source projects)MIT License(to facilitate use of jQuery within proprietary software)下的双重许可的。

我要啦免费统计