高性能JavaScript
高性能JavaScript
Nicholas C. Zakas
丁琛 译
出版时间:2020年10月
页数:232
如果你像大多数开发者那样,高度依赖JavaScript开发可交互且快速响应的网络应用,那么JavaScript代码会让你的应用变得缓慢。本书揭示的技术和策略能够帮助你在开发中突破性能瓶颈。你将会学到如何缩短执行时间、提高加载速度、改善DOM交互、优化页面生存周期,等等。

雅虎的前端工程师Nicholas C. Zakas和其他五位JavaScript专家——Ross Harmes、Julien Lecomte、Steven Levithan、Stoyan Stefanov、Matt Sweeney,演示了页面加载代码的最佳方案,并且介绍了让JavaScript尽可能高效执行的编程技巧。你将会学到将文件打包部署到生产环境的最佳实践,以及能够帮助你排查线上问题的工具。

· 找出有问题的代码并给出更优替代方案
· 理解JavaScript存取数据的原理,改善代码
· 改善JavaScript代码来加速DOM交互
· 使用优化技术来改善执行性能
· 学习多种方式以确保UI一直处于可用状态
· 实现更快的客户端与服务端通信
· 使用打包系统精简文件,并使用HTTP压缩传输

“《高性能JavaScript》涵盖了当今JavaScript开发者需要了解的所有性能问题,毫无疑问,它已加入我的性能最佳实践列表。”
——Steve Souders

“《高性能JavaScript》是个让人印象深刻的JavaScript话题、技巧、秘诀的集合。如果你想编写高质量 JavaScript 代码,这本书值得一读。”
——Venkat Udayasankar
雅虎搜索性能专家

Nicholas C. Zakas,雅虎首页的主要开发者,雅虎用户界面库(YUI)代码贡献者,擅长利用JavaScript、HTML、CSS、XML、XSLT设计和实现WEB界面的软件工程师。

(推荐中高级JavaScript开发者阅读。)
  1. 前言
  2. 第1章 加载和执行
  3. 1.1 脚本位置
  4. 1.2 组织脚本
  5. 1.3 无阻塞的脚本
  6. 1.3.1 延迟的脚本
  7. 1.3.2 动态脚本元素
  8. 1.3.3 XMLHttpRequest脚本注入9
  9. 1.3.4 推荐的无阻塞模式
  10. 1.4 小结
  11. 第2章 数据访问
  12. 2.1 管理作用域
  13. 2.1.1 作用域链和标识符解析
  14. 2.1.2 标识符解析的性能
  15. 2.1.3 改变作用域链
  16. 2.1.4 动态作用域
  17. 2.1.5 闭包,作用域和内存
  18. 2.2 对象成员
  19. 2.2.1 原型
  20. 2.2.2 原型链
  21. 2.2.3 嵌套成员
  22. 2.2.4 缓存对象成员值
  23. 2.3 小结
  24. 第3章 DOM编程
  25. 3.1 浏览器中的DOM
  26. 3.1.1 天生就慢
  27. 3.2 DOM访问与修改
  28. 3.2.1 innerHTML对比DOM方法
  29. 3.2.2 节点克隆
  30. 3.2.3 HTML集合
  31. 3.2.4 遍历DOM
  32. 3.3 重绘与重排
  33. 3.3.1 重排何时发生?
  34. 3.3.2 渲染树变化的排队与刷新
  35. 3.3.3 最小化重绘和重排
  36. 3.3.4 缓存布局信息
  37. 3.3.5 让元素脱离动画流
  38. 3.3.6 IE和:hover
  39. 3.4 事件委托
  40. 3.5 小结
  41. 第4章 算法和流程控制
  42. 4.1 循环
  43. 4.1.1 循环的类型
  44. 4.1.2 循环性能
  45. 4.1.3 基于函数的迭代
  46. 4.2 条件语句
  47. 4.2.1 if-else对比switch
  48. 4.2.2 优化if-else
  49. 4.2.3 查找表
  50. 4.3 递归
  51. 4.3.1 调用栈
  52. 4.3.2 递归模式
  53. 4.3.3 迭代
  54. 4.3.4 Memoization
  55. 4.4 小结
  56. 第5章 字符串和正则表达式
  57. 5.1 字符串连接
  58. 5.1.1 加(+)和加等于(+=)操作符
  59. 5.1.2 数组项连接
  60. 5.1.3 String.prototype.concat
  61. 5.2 正则表达式优化
  62. 5.2.1 正则表达式工作原理
  63. 5.2.2 理解回溯
  64. 5.2.3 回溯失控
  65. 5.2.4 基准测试的说明
  66. 5.2.5 更多提高正则表达式效率的方法
  67. 5.2.6 何时不使用正则表达式
  68. 5.3 去除字符串首尾空白
  69. 5.3.1 使用正则表达式去首尾空白
  70. 5.3.2 不使用正则表达式去除字符串首尾空白
  71. 5.3.3 混合解决方案
  72. 5.4 小结
  73. 第6章 快速响应的用户界面
  74. 6.1 浏览器UI线程
  75. 6.1.1 浏览器
  76. 6.1.2 多久才算“太久”?
  77. 6.2 使用定时器让出时间片段
  78. 6.2.1 定时器基础
  79. 6.2.2 定时器的精度
  80. 6.2.3 使用定时器处理数组
  81. 6.2.4 分割任务
  82. 6.2.5 记录代码运行时间
  83. 6.2.6 定时器与性能
  84. 6.3 Web Workers
  85. 6.3.1 Worker运行环境
  86. 6.3.2 与Worker通信
  87. 6.3.3 加载外部文件
  88. 6.3.4 实际应用
  89. 6.4 小结
  90. 第7章 Ajax
  91. 7.1 数据传输
  92. 7.1.1 请求数据
  93. 7.1.2 发送数据
  94. 7.2 数据格式
  95. 7.2.1 XML
  96. 7.2.2 JSON
  97. 7.2.3 HTML
  98. 7.2.4 自定义格式
  99. 7.2.5 数据格式总结
  100. 7.3 Ajax 性能指南
  101. 7.3.1 缓存数据
  102. 7.3.2 了解Ajax类库的局限
  103. 7.4 小结
  104. 第8章 编程实践
  105. 8.1 避免双重求值(Double Evaluation)
  106. 8.2 使用Object/Array直接量
  107. 8.3 不要重复工作
  108. 8.3.1 延迟加载
  109. 8.3.2 条件预加载
  110. 8.4 使用速度快的部分
  111. 8.4.1 位操作
  112. 8.4.2 原生方法
  113. 8.5 小结
  114. 第9章 构建并部署高性能JavaScript应用
  115. 9.1 Apache Ant
  116. 9.2 合并多个JavaScript文件
  117. 9.3 预处理JavaScript文件
  118. 9.4 JavaScript压缩
  119. 9.5 构建时处理对比运行时处理
  120. 9.6 JavaScript的HTTP压缩
  121. 9.7 缓存JavaScript文件
  122. 9.8 处理缓存问题
  123. 9.9 使用内容分发网络(CDN)
  124. 9.10 部署JavaScript资源
  125. 9.11 敏捷JavaScript构建过程
  126. 9.12 小结
  127. 第10章 工具
  128. 10.1 JavaScript性能分析
  129. 10.2 YUI Profiler
  130. 10.3 匿名函数
  131. 10.4 Firebug
  132. 10.4.1 控制台面板分析工具
  133. 10.4.2 Console API
  134. 10.4.3 网络面板
  135. 10.5 IE开发人员工具
  136. 10.6 Safari Web检查器(Web Inspector)
  137. 10.6.1 分析面板
  138. 10.6.2 资源面板
  139. 10.7 Chrome开发人员工具
  140. 10.8 脚本阻塞
  141. 10.9 Page Speed
  142. 10.10 Fiddler
  143. 10.11 YSlow
  144. 10.12 dynaTrace Ajax Edition
  145. 10.13 小结
  146. 索引
书名:高性能JavaScript
作者:Nicholas C. Zakas
译者:丁琛 译
国内出版社:电子工业出版社
出版时间:2020年10月
页数:232
书号:978-7-121-11932-3
原版书出版商:O'Reilly Media
Nicholas C. Zakas
 
Nicholas C. Zakas是一名前端开发顾问、作者、演讲家。他在Yahoo!供职超过5年时间。在这期间,他曾是Yahoo!首页首席前端工程师和YUI代码贡献者。他著有《JavaScript高级程序设计》、《Ajax高级程序设计》和《高性能JavaScript》。他的博客地址是:http://www.nczonline.net/。他的Twitter是:@slicknet。
 
 
购买选项
定价:89.00元
书号:978-7-121-11932-3
出版社:电子工业出版社