发表于2024-12-23
JavaScript性能优化:度量、监控与可视化 [Pro JavaScript Performance] pdf epub mobi txt 电子书 下载
首部系统化阐述JavaScript性能优化的经典著作,拥有20余年经验的Web性能调优专家经验结晶,
从语言特性、浏览器原理、网络传输机制、数据结构等多角度深层探讨影响JavaScript代码性能的根本原因,并给出解决问题完整流程和解决方案
《JavaScript性能优化:度量、监控与可视化》是首部系统化阐述JavaScript性能优化的经典著作,拥有20余年经验的Web性能调优专家经验结晶,全五星好评。从语言特性、浏览器原理、网络传输机制、数据结构等多角度深层探讨影响JavaScript代码性能的根本原因,从性能问题的度量、监控和可视化全维度给出了提升JavaScript代码性能的实用工具、方法和实践,并对各种常见的性能问题给出了完整的解决方案。
《JavaScript性能优化:度量、监控与可视化》共分8章:第1章从Web应用运行机制和原理方面解析性能;第2章介绍测量性能的工具(Firebug、YSlow、WebPagetest、R)和实用技术;第3章基于样例工程WPTRuner来介绍如何进行自动化性能监测与可视化;第4章以创建的自制工具perfLogger来讲解JavaSript基准测试和日志记录;第5章讲解W3C制定的用于收集浏览器性能度量值的新标准化方法;第6章具体介绍如何使用JavaScript改进Web性能的各个方面;第7章探讨提升运行时性能的途径,并运用R生成量化的性能图表;第8章探讨如何在性能与代码可读性以及代码模块化之间谋求平衡。
Tom Barker,资深Web技术专家,有20余年行业经验,专注于Web开发的各个方面。现为Comcast公司的Web开发高级经理,费城大学的兼职教授。痴迷于优雅的软件解决方案,软件持续改进,数据的提炼、分析以及可视化。
缪纶,资深软件开发工程师、安全员,负责或参与过多个国家科技支撑项目。现从事计算机网络以及Web开发相关工作,关注JavaScript网站性能多年,对Web性能提升有独到见解。
目 录
译者序
致 谢
第1章 什么是性能
1.1 Web性能
1.2 解析与渲染
1.2.1 渲染引擎
1.2.2 JavaScript引擎
1.3 运行时性能
1.4 为什么性能如此重要
1.5 工具与可视化
1.6 本书的目的
1.7 使用的技术以及拓展阅读
1.8 小结
第2章 测量和影响性能的工具与技术
2.1 Firebug
2.1.1 安装
2.1.2 使用
2.2 YSlow
2.2.1 安装
2.2.2 使用
2.3 WebPagetest
2.4 缩减
2.4.1 Minify
2.4.2 YUI Compressor
2.4.3 Closure Compiler
2.4.4 结果比较
2.4.5 分析与可视化
2.5 R入门
2.5.1 安装并运行R
2.5.2 R基础
2.5.3 使用R进行简单绘图
2.5.4 R的一个实例
2.5.5 使用apply()函数
2.6 小结
第3章 WPTRunner--使用WebPagetest进行自动化性能监测与可视化
3.1 架构
3.2 创建一个共享配置文件
3.3 解析测试结果
3.4 完成实例
3.5 数据解析
3.6 绘制加载时间
3.7 绘制负载和HTTP请求数
3.8 开源
3.9 小结
附:WebPagetest的创办人Patrick Meenan访谈
第4章 perfLogger--JavaScript基准测试和日志记录
4.1 架构
4.2 开始编写代码
4.2.1 计算测试结果
4.2.2 设置测试结果元数据
4.2.3 显示测试结果
4.2.4 保存数据
4.2.5 制定公有API
4.3 远程日志记录
4.4 一个示例页
4.5 为测试结果绘制图表
4.6 开源
4.7 小结
第5章 展望未来,性能的标准化
5.1 W3C的Web性能工作组
5.2 性能对象
5.2.1 性能定时
5.2.2 用perfLogger整合性能对象
5.3 升级日志功能
5.4 性能导航
5.5 性能内存
5.6 高分辨率时间
5.7 新数据可视化
5.8 小结
第6章 Web性能优化
6.1 优化页面的渲染瓶颈
6.1.1 脚本加载
6.1.2 异步
6.1.3 对比结果
6.2 惰性加载
6.2.1 惰性加载的艺术
6.2.2 惰性加载脚本
6.2.3 惰性加载CSS
6.2.4 为什么不惰性加载图片
6.3 小结
第7章 运行时性能
7.1 跨作用域的缓存变量和属性
7.1.1 新建文件
7.1.2 创建测试
7.1.3 结果可视化
7.1.4 属性引用示例
7.2 核心JavaScript与Frameworks的比较
7.2.1 jQuery与JavaScript比较:循环
7.2.2 jQuery与JavaScript比较:DOM访问
7.3 Eval函数的真正价值
7.4 DOM访问
7.4.1 使用队列完成DOM元素修改
7.4.2 使用队列添加新节点
7.5 嵌套循环的代价
7.6 小结
第8章 在性能、软件工程最佳实践和软件产品运行之间谋求平衡
8.1 在性能与可读性、模块化和良好设计之间谋求平衡
8.2 焦土化性能
8.2.1 内联函数
8.2.2 Closure Compiler
8.3 下一步:从实践到实际应用
8.3.1 Web性能监测
8.3.2 用工具检测你的网站
8.3.3 在测试实验环境中进行基准测试
8.3.4 分享你的发现
8.4 小结
第1章 什么是性能
所谓性能是指应用程序运行的速度,它反映了应用程序质量多个层面的问题。我们在谈论Web应用程序时,该应用程序呈现给用户所消耗的时间就是我们所说的Web性能,应用程序对用户指令的响应速度就是我们所说的运行时性能。接下来我们就看看性能的这两个方面。
在Web(特别是移动Web)开发背景下,性能是一个相对较新的主题,但是它绝对早就应该得到关注了。
本书将探讨如何量化和优化JavaScript性能,包括Web性能和运行时性能。这是至关重要的,因为当你试图解决网站的整体性能时,JavaScript可能是提升性能最大的地方。作为YSlow和PageSpeed的缔造者,以及Web性能领域的先驱者,Steve Souders已经通过实验证明了这一点。在实验中,他演示了当删除一个样本网站的JavaScript代码之后,该网站平均性能提高了31%。我们也完全可以像Steve实验中做的那样,从我们的网站中删除所有的JavaScript代码,或者精简JavaScript代码,并学习如何评估我们编写的代码的执行效率。
彻底删除JavaScript代码是不现实的,所以我们要知道如何使JavaScript更加高效。甚至更为重要的是,我们要知道如何创建自动化的工具以跟踪JavaScript的效率,并给出可视化的分析和报告。
1。1 Web性能
当你坐在笔记本前,或使用手持设备,打开Web浏览器,输入一个URL地址并按下回车键,然后等待页面内容传送过来、呈现在你的浏览器上时,此时所需要的时间取决于Web性能。甚于我们的目标,我们将Web性能定义为全面反映页面传送并对最终用户可用的时间。
影响Web性能的因素有很多,网络延迟是排在第一位的。你的网络有多快?要得到所需的服务内容,需要往返跳转多少次?服务器要给出多少次响应?
为了更好地理解网络延迟,先来看看完成一个HTTP事务所需要的步骤(见图1-1)。
……
译者序
JavaScript是比较完善的一种前端开发语言,在现今的Web开发(尤其是在Web 2.0)中应用非常广泛。在Web 2.0越来越流行的今天,我们会发现,许多Web应用项目都会涉及大量的JavaScript代码,并且以后会越来越多。Web开发过程中经常会遇到一些性能问题,尤其是在针对Web 2.0的应用中,应用的性能问题很大一部分都是由于程序员编写的JavaScript脚本性能不佳所造成的,其中也包括了JavaScript语言本身的性能问题,以及与DOM交互时的性能问题。
JavaScript作为一种解释执行语言,加之它的单线程机制,决定了性能问题是JavaScript的软肋,这也是Web软件工程师在编写JavaScript代码过程中需要高度重视的一个问题,尤其是针对Web 2.0的应用。绝大多数Web软件工程师都或多或少地遇到过所开发的Web 2.0应用的性能欠佳问题,其主要原因就是JavaScript性能不足,浏览器负荷过重。但是,解决这种解释执行并且单线程运作语言的性能问题并非易事。
本书从一个体系化的角度对JavaScript性能进行考量,从Web性能探测工具,到数据的收集整理,再到数据的展示与可视化,最后是性能问题的解决,深入浅出、条理清晰。本书尝试从多个方面综合分析导致JavaScript性能问题的原因,并给出适合的解决方案,帮助读者提升Web应用的品质。
本书页数了了,内容精炼,但是它承载了JavaScript性能方面最为宝贵的经验。不仅从语言特性、浏览器原理、网络传输机制、数据结构等层面分析导致JavaScript性能问题的原因,而且介绍多种工具来帮助读者提升开发过程中的工作效率。
翻译本书的过程,也是我们学习和提高的过程。虽然我们一直关注国内外Web性能领域的相关动态,但是从未像本书的作者那样,形成一套完整的实践方法体系。每当看到书中作者提供的代码样例,我们都试图在真实环境中实践,以深刻体会作者的意图和思想。但是由于时间和软硬件环境等方面的原因,无法实践书中所有的代码样例。这里也希望读者能够亲自动手实践,这样才能够更快地掌握JavaScript性能改善的方法和能力。
本书的翻译组织工作由缪纶全面负责。第1~3章由缪纶和王志璋译校,作者简介、第4章、第6章由缪纶和王冠华译校,第5章、第7章、第8章由叶茂译校。
我们在翻译本书的过程中力求行文流畅,但纰漏之处在所难免,请广大读者能够批评指正。
最后,希望本书能够帮助业界的同仁们打造出性能优越的Web软件产品。
缪 纶
大部分是在介绍调优工具,内容还可以,适合初学者。
评分不错不错不错不错不错
评分还没有看,先给好评。
评分抢了200-100的券,买书很划算,一堆专业书,100都不到
评分开发参考书,买了一批,总体都很不错。
评分帮朋友买的,说还不错,应该是正版!
评分看完书再来评书。
评分从书籍中汲取知识和力量,是人生之必需。每个人从一出生开始,就在不停地学习各种各样的知识,以便将来在社会上更好的立足。 读书就如同一个科学家去读当代文学作品,一个诗人去读某个考古学家的记录一样,读是因为喜欢,读是源于兴趣,有一句话说的好:“阅读不能改变人生的长度,但它可以改变人生的宽度。”正是这种兴趣的阅读,让我的生活丰富多彩。 读书已经成为我的一种习惯,小学时最爱做的事情,就是看各种各样的“闲书”,从爸爸妈妈给订阅的儿童杂志,到一些文学名著,我都照单全收。即使是上中学以后,也是依然爱读书,也要在繁忙间隙让自己的心灵得到些许的休憩。拿起一本喜爱的书籍,就好像随手推开一扇窗户,欣赏窗外美丽的风景。这风景或粗犷豪放,或细腻委婉,或雄伟磅礴,或感人肺腑,令我浑然忘却了学习中的烦恼与不快,仿佛排徊在青山绿水之间,呼吸着新鲜的空气,挥着思想的翅膀,感受着生命的美好。 捧一帧书册,看史事五千;品一壶清茗,行通途八百。无须走马塞上,你便可看楚汉交兵;无须程门立雪,你便可听师长之谆谆教诲。莘莘学子,自幼苦读经书,不惜为此头悬梁,锥刺骨,为的是什么,就是充实自己的知识体系,而这最根本的途径就是“开卷”。曹雪芹“披阅十载,增删五次”,方成“红楼巨著”;纪晓岚“饱览群书,徜徉书海”,方得“天下第一才子”称号……他们都是从“开卷”那里得到了最大的益处。 初读好书,如获良友;重读好书,如逢故知。书,可以使我们增长见识,不出门便可知天下事。书,可以提高我们的阅读能力和写作水平。书,可以使我们变得有修养。书,还可使我们在竞争激烈的社会上立于不败之地……其实读书的好处有很多,就等着有心人去慢慢发现。 同书一样,报纸上形形色色的消息,五花八门的知识,都像磁铁般吸引着人们。世界天天在变化,社会天天在发展,新人新事新科技层出不穷。这样,报纸就天天有新内容,每天都会给你新的启发,新的感受。忠实的读者因经常读报,不仅乐趣无穷,而且开阔了视野,陶冶了性情,有的人因此而走上了成功之路。毫无疑问,报纸是千百万人终身的良师和益友。 读书好,好读书,读好书;勤读报,会读报,你就会和大千世界息息相通。这样的好机会,我们从小就因该抓住;这样的好习惯,我们从小就因该养成。[BJTJ],买回来觉得还是非常值的。我喜欢看书,喜欢看各种各样的书,看的很杂,文学名著,流行小说都看,只要作者的文笔不是太差,总能让我从头到脚看完整本书。
评分凑单买的,比想象的薄。
JavaScript性能优化:度量、监控与可视化 [Pro JavaScript Performance] pdf epub mobi txt 电子书 下载