购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

第三方JavaScript是从一个远程Web服务的地址获得服务,并在发布者页面上独立运行的客户端代码。第三方JavaScript用于创造高度分布式的Web应用程序,例如从社交微件到数据跟踪分析,到功能齐全的嵌入式应用程序。

本书介绍了第三方JavaScript应用程序的开发,不仅告诉读者如何开发运行在第三方环境的JavaScript代码,也介绍了第三方Web开发的相关技术,包括HTML、CSS和HTTP等。本书适用于有第三方代码开发经验的开发者(例如在自己的网站上运行),也适用于希望致力于研究这些问题如何在外部环境运行的开发者们(在其他人的网站上运行)。

本书不是JavaScript编程语言的初级读本,也不介绍HTML和CSS的基本原理。本书介绍的要点包括动态脚本加载、Cookies、HTTPS以及其他中间件和高级Web开发技术。

线路图

本书包含如下章节。

第1章介绍了第三方JavaScript的定义。本章告诉读者什么是第三方JavaScript,并介绍了一些现实案例。本章以一个快速的第三方应用程序示例结束,并指出了第三方Web开发的难点。

第2章指导读者如何在一个内容提供者的网站上实际加载和执行他们的代码。描述了如何设置本地开发环境来模拟第三方开发,然后进入脚本加载最佳实践,如何从一个内容提供者的网站中提取配置变量。

第3章重点介绍DOM渲染。指导读者在开发过程中,在不能控制的内容提供商的DOM中呈现最佳实践。本章还包括使用CSS样式和iframe元素避免冲突的策略。

第4章介绍在第三方脚本和数据服务器之间的通信。首先讨论了同源策略,以及由于同源策略限制带来的跨域通信的困难。其次,重点关注在两个工作区进行跨域请求:JSONP和子域名代理。最后,介绍了跨源资源共享(Cross Origin Resource Sharing,CORS),一个新的HTML5浏览器特性,使得在现代浏览器中跨域请求成为可能。

第5章继续介绍跨窗口的消息传递方法,包括在iframe直接的数据传递方法。方法包括window.postMessage—一种HTML5提供的支持在多窗口之间传递消息的特性。其次,介绍了一系列不支持window.postMessage的浏览器。同时,介绍了easyXDM(一个开源JavaScript库),该库提供了与postMessage类似的特性,同时支持现代浏览器和老版本浏览器。

第6章是关于身份验证和Cookies。本章介绍了Cookies在第三方JavaScript中的行为,并提供了当第三方Cookies失效时的解决方案。同时,简要介绍了使用Cookies时需要注意的安全问题。

第7章讨论了第三方应用程序的安全性,涵盖了传统漏洞,包括基于JavaScript的应用程序的跨站点脚本攻击(XSS)、跨站点请求伪造(XSRF)的攻击,也包括特定于第三方应用程序的漏洞。

第8章介绍了JavaScript SDK(Software Development Kit)的发展。开发JavaScript SDK采用了前几章介绍到的技术,并封装成公共的方法。本章还演示了如何为一个基于HTTP的Web服务提供一个客户端JavaScript包装器的API。

第9章关于性能。涵盖的技术包括如何减少文件大小、如何减少应用程序发出的HTTP请求的数量。同时,也介绍了不阻塞浏览器或其他脚本的JavaScript代码的最佳实践。

第10章介绍测试和调试。本章演示了如何使用工具重写代理、如何从生产环境切换到调试应用程序代码的调试环境,并展示了如何为第三方代码编写单元测试。

编码规范和下载

所有的源代码清单使用等宽字体显示,以便与其他普通文字区分开来。代码注释中强调了许多重要的信息和概念。在某些情况下,通过项目符号标识特定的代码清单。

本书的配套源代码是在MIT许可下发布的。在出版社网站www.manning.com/Third- PartyJavaScript中提供免费下载。你也可以在GitHub查看源码,地址是http://github.com/ thirdpartyjs。

在线帮助

购买本书的读者可以免费访问Manning出版社运营的私有Web论坛,在该论坛中你可以发表关于本书的评论,发布技术问题,并能够获得作者以及其他读者的帮助。在该论坛上注册后,用浏览器打开www.manning.com/Third-PartyJavaScript页面。这个页面上有关于如何进入论坛、注册、能够获取哪些帮助以及论坛的规则等内容。

Manning论坛为读者提供了一个有意义的场所,是读者和读者、读者和作者之间对话的桥梁。任何作者的参与、读者的讨论都是自愿的。我们建议你试着问作者一些挑战性的问题以吸引他们的兴趣!

作者在线论坛以及讨论的档案可以从书中提到的出版商网站中获取。 qggoSBmVVg5TleH1dKKfqCVvtqwOwPoAaP1cL+SDOAx76XbUsbVuDd4EBtYS0viR

点击中间区域
呼出菜单
上一章
目录
下一章
×