关于我们
![]() ![]() |
Web API经典实例 本书的主要内容有:通过浏览器原生能力提升Web应用体验。系统学习现代浏览器API所提供的广泛功能。深入探索实验性阶段的前瞻性API。摆脱第三方库依赖,发掘如原生对话框组件等新元素。依赖原生硬件设备能力,构建更高功能和交互性的Web应用。深刻理解浏览器权限模型,解锁地理位置信息和通知推送等核心功能。 JavaScript应用程序进阶之路。 前言自1995 年底推行以来,JavaScript 已经走过了一段漫长的道路。早期的Web 浏览器内核提供的API 非常有限,很多高级的功能通常要依赖第三方JavaScript库,甚至在特殊情况下需要浏览器插件来完成。Web API 是浏览器提供的一系列全局对象和函数。通过这些对象和函数,可以运行JavaScript 代码与文档对象模型(DOM)交互、执行网络通信、并与本机设备集成等。现代浏览器的强大功能现代Web API 对于Web 平台有两个主要优势:无需更多插件之前,很多浏览器功能要借助本机应用程序或笨重的浏览器插件才能使用(还记得ActiveX 和Flash 吗)。减少第三方依赖过去需要第三方JavaScript 库才能实现的许多功能,现代浏览器都已提供了。因此,像jQuery、Lodash 和Moment 这样的曾经流行的库通常不再需要了。第三方库的弊端第三方库对于支持老旧浏览器或新功能非常有用,但也存在一些弊端:更多的代码下载使用第三方库会增加浏览器需要加载的JavaScript 代码量。无论是与应用程序打包在一起,还是从内容分发网络(CDN)单独加载,浏览器都仍然需要下载它。这可能会导致加载时间变长,并增加移动设备上的电池消耗。风险增加开源的库,即使是流行的库,也可能停止维护。当发现漏洞或安全问题时,无法保证会有更新。相比之下,浏览器由大型公司(主要浏览器来自Google、Mozilla、Apple 和Microsoft)支持,因此更有可能修复这些问题。这并不是说使用第三方库就一定是不好的。如果需要支持旧版浏览器,使用第三方库则有很多好处。就像软件开发一样,库的使用需要权衡利弊。本书的目标读者本书非常适合对JavaScript 有一定了解并想要充分利用网络平台的软件开发人员。本书假设你已经具备JavaScript 语言的基础知识,包括语法、特性和标准库函数,同时也了解构建交互式浏览器端JavaScript 应用程序的DOM 接口。本书涵盖了各种各样的内容,适合各个技术水平的开发者。即使是刚入门的新手也能找到适合自己的部分。示例代码本书每章都包含一些的样例(完成指定任务的代码示例)。每个样例由三个部分组成:问题描述样例需要解决的问题。方案具体的解决方案,包括代码和注解。讨论对主题的深入讨论。可能包含其他代码示例以及与其他技术的比较。本书所有的代码示例和在线演示均可以在配套网站https://WebAPIs.info 上找到。其他资源本质上讲,Web 无时不在改变。将会有很多优秀的在线资源出现来解答或澄清新的问题。CanIUse.com本书写作之时,书中的一些API 仍在开发中或实验阶段。使用这些API 时注意样例中的兼容性说明。大多数功能,可以通过https://CanIUse.com 查看最新的兼容性数据。也可以按功能名称搜索,并查看有关浏览器版本支持以及API 对浏览器版本的任何限制或警告。MDN Web 文档MDN Web 文档(https://oreil.ly/rLxi7)是包含所有Web API 的权威文档。它涵盖了本书中的所有API 详细信息以及其他主题,例如CSS 和HTML。同时也包含一些深入的文章和教程以及API 规范。API 规范有任何疑问,相关功能或API 的规范是最权威的资源。这些规范虽然读起来比较枯燥,但它详细地记录了各种特殊情况和预期行为。虽然不同的API 有着不一样的标准,但都能在超文本应用程序技术工作组(WHATWG)(https://oreil.ly/PR0x7)或者万维网联盟(W3C)(https://oreil.ly/dFokl)上找到对应的规范。维护和制定ECMAScript 标准(也是JavaScript 语言标准)的是Ecma 国际39技术委员会,即大名鼎鼎的TC39(https://tc39.es)。排版约定本书采用以下排版约定。斜体(Italic)表示新术语、URL、电子邮件地址、文件名和文件扩展名。等宽字体(Constant width)表示程序清单,在段落内表示程序元素,例如变量、函数名称、数据库、数据类型、环境变量、语句和关键字。粗体等宽字体(Constant width bold)表示应由用户原封不动输入的命令或其他文本。斜体等宽字体(Constant width italic)表示应该替换成用户提供值的文本,或者由上下文决定的值。使用示例代码本书资料(包括示例代码,练习等)均可在https://github.com/joeattardi/webapicookbook 下载,也可查看网站(https://WebAPIs.info),本书中的大多示例已开发为完整的,可工作的在线示例。有任何技术疑问, 或者代码示例运行的问题, 请随时发送email 到bookquestions@oreilly.com。本书旨在帮助您完成工作。通常情况下,本书提供的示例代码,可以在自己个人的程序和文档中使用它。除非使用大量的代码,否则无需联系我们获得许可。例如,编写一个使用本书多个代码片段的程序不需要许可。销售或分发来自OReilly 图书的示例需要许可。引用本书并引用示例代码来回答问题不需要许可。将本书大量示例代码纳入产品文档需要许可。我们很希望但并不强制要求你在引用书中内容时加上引用说明。引用说明通常包括标题、作者、出版商和ISBN。例如,Web API Cookbook by Joseph Attardi (OReilly). Copyright 2024 Joe Attardi, 978-1-098-15069-3。如果你觉得自己对示例代码的用法超出了上述许可的范围, 请随时通过permissions@oreilly.com 联系我们。OReilly 在线学习平台(OReilly Online Learning)近40 年来,OReilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。公司独有的专家和改革创新者网络通过OReilly 书籍、文章以及在线学习平台,分享他们的专业知识和实践经验。OReilly 在线学习平台按照您的需要提供实时培训课程、深入学习渠道、交互式编程环境以及来自OReilly 和其他200 多家出版商的大量书籍与视频资料。更多信息,请访问网站:https://www.oreilly.com/。联系我们任何有关本书的意见或疑问,请按照以下地址联系出版社。美国:OReilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中国:北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)奥莱利技术咨询(北京)有限公司勘误、示例和其他信息可访问https://oreil.ly/web-api-cookbook 获取。对本书中文版的勘误可以发电子邮件到errata@oreilly.com.cn。欲了解本社图书和课程的新闻和信息,请访问我们的网站http://oreilly.com。我们的Facebook:http://facebook.com/oreilly。我们的YouTube:http://youtube.com/oreillymedia。致谢首先,我要衷心感谢我的家人和朋友对我的支持,尤其是我的妻子Liz 和儿子Benjamin,一直容忍我日夜不停地敲打键盘。我在写这本书时,打字往往非常快而且声音很大。我要特别感谢高级策划编辑Amanda Quinn,是她给了我成为一名OReilly 作者的机会。多年来,我阅读了无数OReilly 出版的书籍,从未想过有一天自己也能成为其中一员。还要感谢Louise Corrigan 将我介绍给Amanda,让我开始写书(几年前与我合作出版了我的第一本书)!特别感谢高级开发编辑Virginia Wilson,她在写作和编辑的整个过程中对我进行了细致的指导,并定期跟进进度,确保项目顺利进行。我还要感谢本书的优秀技术审稿人:Martine Dowden、Schalk Neethling、Sarah Shook 和Adam Scott。他们的宝贵意见使本书的质量得到了很大提升。最后,我要感谢所有设计和开发这些现代Web API 的人。没有他们的辛勤工作,这本书就不可能存在! Joe Attardi拥有超过20年的前端软件开发经验,并开发了许多基于浏览器的应用程序。他还为Nortel、Dell、Constant Contact、Salesforce和Synopsys打造过丰富的前端体验,并专注于JavaScript和TypeScript开发。 目录
我要评论
|