Skip to content

Latest commit

 

History

History
122 lines (67 loc) · 10.1 KB

File metadata and controls

122 lines (67 loc) · 10.1 KB

零、序言

自 2006 年引入以来,jQuery 库使 DOM 遍历和操作变得更加容易。这导致出现了具有日益复杂的用户交互的网页,从而促进了 Web 作为一个能够支持大型应用程序实现的平台的成熟。

本书介绍了一系列使 Web 应用程序的实现更加高效的最佳实践。此外,我们将分析计算机科学必须提供的最重要的设计模式,这些模式可以应用于 Web 开发。通过这种方式,我们将学习如何利用在其他编程领域中被彻底使用和测试的技术,这些技术最初是作为通用方法创建的,用于为复杂问题的解决方案建模。

在 jQuery 设计模式中,我们将分析在 jQuery 实现中如何使用各种设计模式,以及如何使用它们来改进实现的组织。通过采用本书中演示的设计模式,您将能够创建更好的组织实现,更快地解决大型问题类别。此外,当开发团队使用它们时,它们可以改进它们之间的通信,并导致同质实现,其中代码的每个部分都很容易被其他人理解。

这本书涵盖的内容

第 1 章是对 jQuery 和复合模式的复习,通过分析如何使用复合模式和方法链接(Fluent Interface)来实现 jQuery 本身,教读者如何使用它们来编写代码。它还演示了迭代器模式,该模式与 jQuery 返回的复合集合对象很好地匹配。

第 2 章观察者模式将教您如何使用观察者模式响应用户操作。它还演示了如何使用事件委派来减少处理动态注入的页面元素的代码的内存消耗和复杂性。最后,它将教您如何发出和侦听自定义事件,以实现更大的灵活性和代码解耦。

第 3 章发布/订阅模式将教您如何利用发布/订阅模式创建一个中心点来发送和接收应用程序级事件,以此将代码和业务逻辑与用于表示的 HTML 分离。

第 4 章与模块模式分而治之,展示并比较了业界最常用的一些模块模式。它将教您如何使用名称空间在小型独立模块中构造应用程序,从而实现遵循关注点分离原则的可扩展实现。

第 5 章Facade 模式将教您如何使用 Facade 模式将复杂的 API 包装成更简单的 API,以更好地满足应用程序的需要。它还演示了如何更改应用程序的某些部分,同时保持相同的模块级 API 并避免影响实现的其余部分。

第 6 章构建者和工厂模式解释了构建者和工厂模式的概念及其区别。它将教您如何以及何时使用它们,以便通过将复杂结果的生成抽象为单独的专用方法来提高代码的清晰度。

第 7 章异步控制流模式将解释 jQuery 的延迟 API 和承诺 API 是如何工作的,并将它们与经典回调模式进行比较。您将学习如何使用承诺来控制异步过程的执行,以顺序或并行方式运行。

第 8 章模拟对象模式教您如何创建和使用模拟对象和服务,以简化应用程序的开发,并在其所有部分完成之前了解其功能。

第 9 章客户端模板演示了如何使用 underline.js 和 handlebar.js 模板库更好更快地使用 JavaScript 创建复杂的 HTML 结构。通过本章,您将了解他们的习惯,评估他们的特点,并找到最符合您口味的。

第 10 章插件和小部件开发模式,介绍了 jQuery 插件开发的基本概念和约定,并分析了最常用的设计模式,以便您能够识别和使用任何用例的最佳匹配。

第 11 章优化模式为您提供了创建高效、稳健实施的最佳技巧。在将应用程序迁移到生产环境之前,您将能够使用本章作为提高应用程序性能和降低应用程序内存消耗的最佳实践清单。

这本书你需要什么

为了运行本书中的示例,您需要在系统上安装一个 web 服务器来提供代码文件。例如,您可以使用 Apache、IIS 或 NGINX。为了简化 Apache 的安装过程,您可以使用更完整的开发环境解决方案,如 XAMPP 或 WAMP 服务器。

就技术熟练程度而言,本书假设您已经有一些使用 jQuery、HTML、CSS 和 JSON 的经验。本书中的所有代码示例都使用 jqueryv2.2.0,其中一些章节还讨论了 jqueryv1.12.0 中各自的实现,在需要支持旧浏览器时可以使用这些实现。

这本书是给谁的

本书的目标是现有 jQuery 开发人员或希望将其技能和理解提升到高级水平的新开发人员。本文详细介绍了各种行业标准模式如何应用于 jQuery 应用程序,以及一组最佳实践,它可以帮助大型团队协作并创建组织良好、可扩展的实现。

公约

在本书中,您将发现许多文本样式可以区分不同类型的信息。下面是这些风格的一些例子,并解释了它们的含义。

文本中的代码字、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄如下所示:“在前面的 CSS 代码中,我们首先为boxboxsizerclearCSS 类定义了一些基本样式。”

代码块设置如下:

$.each([3, 5, 7], function(index){
    console.log(this + 1 + '!');
});

当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:

$('#categoriesSelector').change(function() { 
    var $selector = $(this); 
    var message = { categoryID: $selector.val() }; 
 broker.trigger('dashboardCategorySelect', [message]); 
});

为了提高书中代码的可读性,除了使用四个空格进行缩进外,我们遵循 Google 的 JavaScript 风格指南。简而言之,我们将花括号放在顶部,并对字符串文字使用单引号。

有关谷歌 JavaScript 风格指南的更多信息,请访问以下 URL:https://google.github.io/styleguide/javascriptguide.xml

任何命令行输入或输出的编写方式如下:

npm install jquery

新术语重要词语以粗体显示。您在屏幕上看到的单词(例如,在菜单或对话框中)出现在文本中,如下所示:“返回的jQuery 对象是一个类似于数组的对象,它充当包装器对象并携带检索到的元素的集合。”

警告或重要注释显示在这样的框中。

提示

提示和技巧如下所示。

读者反馈

我们欢迎读者的反馈。让我们知道你对这本书的看法你喜欢还是不喜欢。读者反馈对我们来说很重要,因为它可以帮助我们开发出您将真正从中获得最大收益的标题。

要向我们发送总体反馈,只需发送电子邮件<[feedback@packtpub.com](mailto:feedback@packtpub.com)>,并在邮件主题中提及该书的标题。

如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请参阅我们的作者指南www.packtpub.com/authors

客户支持

既然您是一本 Packt 图书的骄傲拥有者,我们有很多东西可以帮助您从购买中获得最大收益。

下载示例代码

您可以从您的账户下载示例代码文件 http://www.packtpub.com 对于您购买的所有 Packt 出版书籍。如果您在其他地方购买了本书,您可以访问http://www.packtpub.com/support 并注册,将文件直接通过电子邮件发送给您。

勘误表

虽然我们已尽一切努力确保内容的准确性,但错误确实会发生。如果您在我们的一本书中发现错误,可能是文本或代码中的错误,如果您能向我们报告,我们将不胜感激。通过这样做,您可以使其他读者免于沮丧,并帮助我们改进本书的后续版本。如果您发现任何错误,请访问进行报告 http://www.packtpub.com/submit-errata ,选择您的书籍,点击勘误表提交表链接,输入您勘误表的详细信息。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上载到我们的网站或添加到该标题勘误表部分下的任何现有勘误表列表中。

要查看之前提交的勘误表,请转至https://www.packtpub.com/books/content/support 并在搜索字段中输入图书名称。所需信息将出现在勘误表部分下。

盗版

在互联网上盗版版权材料是所有媒体都面临的一个持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上发现任何形式的非法复制品,请立即向我们提供地址或网站名称,以便我们采取补救措施。

请致电<[copyright@packtpub.com](mailto:copyright@packtpub.com)>与我们联系,并提供可疑盗版材料的链接。

我们感谢您在保护我们的作者方面提供的帮助以及我们为您带来有价值内容的能力。

问题

如果您对本书的任何方面有任何问题,可以通过<[questions@packtpub.com](mailto:questions@packtpub.com)>与我们联系,我们将尽力解决该问题。