高性能网站建设进阶指南:Web开发者性能优化最佳实践

news/2024/5/20 23:51:41/文章来源:https://blog.csdn.net/weixin_34253126/article/details/86057754

高性能网站建设进阶指南:Web开发者性能优化最佳实践

 

 

基本信息

作者: 口碑网前端团队   
出版社:电子工业出版社
ISBN:9787121105449
上架时间:2010-4-9
出版日期:2010 年4月
开本:16开
其他详细信息查看:http://www.china-pub.com/196626


内容简介

本书是《高性能网站建设指南》姊妹篇。作者Steve Souders是Google Web性能布道者和Yahoo!前首席性能工程师。在本书中,Souders与8位专家分享了提升网站性能的最佳实践和实用建议,主要包括:理解Ajax性能,编写高效的JavaScript,创建快速响应的应用程序、无阻塞加载脚本, 跨域共享资源,无损压缩图片大小,使用块编码加快网页渲染;避免或取代iframe的方法,简化CSS选择符,以及其他技术。
Web前端开发工程师


目录

致谢 I
前言 III
第1章:理解Ajax性能 1
1.1 权衡 1
1.2 优化原则 2
1.3 Ajax 4
1.4 浏览器 4
1.5 哇! 5
1.6 JavaScript 6
1.7 总结 6
第2章:创建快速响应的Web应用 7
2.1 怎样才算足够快 9
2.2 测量延迟时间 10
2.2.1 当延迟变得很严重时 12
2.3 线程处理 12
2.4 确保响应速度 13
2.4.1 Web Workers 14
2.4.2 Gears 14
2.4.3 定时器 16
2.4.4 内存使用对响应时间的影响 17

.2.4.5 虚拟内存 18
2.4.6 内存问题的疑难解答 18
2.5 总结 19
第3章:拆分初始化负载 21
3.1 全部加载 21
3.2 通过拆分来节省下载量 22
3.3 寻找拆分 23
3.4 未定义标识符和竞争状态 24
3.5 个案研究:Google日历 25
第4章:无阻塞加载脚本 27
4.1 脚本阻塞并行下载 27
4.2 让脚本运行得更好 29
4.2.1 XHR Eval 29
4.2.2 XHR注入 31
4.2.3 Script in Iframe 31
4.2.4 Script DOM Element 32
4.2.5 Script Defer 32
4.2.6 document.write Script Tag 33
4.3 浏览器忙指示器 33
4.4 确保(或避免)按顺序执行 35
4.5 汇总结果 36
4.6 最佳方案 38
第5章:整合异步脚本 41
5.1 代码示例:menu.js 42
5.2 竞争状态 44
5.3 异步加载脚本时保持执行顺序 45
5.3.1 技术1:硬编码回调(Hardcoded Callback) 46
5.3.2 技术2:Window Onload 47
5.3.3 技术3:定时器(Timer) 48
5.3.4 技术4:Script Onload 49
5.3.5 技术5:降级使用script标签(Degrading Script Tags) 50
5.4 多个外部脚本 52
5.4.1 Managed XHR 52
5.4.2 DOM Element和Doc Write 56
5.5 综合解决方案 59
5.5.1 单个脚本 59
5.5.2 多个脚本 60
5.6 现实互联网中的异步加载 63
5.6.1 Google分析和Dojo 63
5.6.2 YUI Loader 65
第6章:布置行内脚本 69
6.1 行内脚本阻塞并行下载 69
6.1.1 把行内脚本移至底部 70
6.1.2 异步启动执行脚本 71
6.1.3 使用script的defer属性 73
6.2 保持CSS和JavaScript的执行顺序 73
6.3 风险:把行内脚本放置在样式表之后 74
6.3.1 大部分下载都不阻塞行内脚本 74
6.3.2 样式表阻塞行内脚本 75
6.3.3 问题确曾发生 77
第7章:编写高效的JavaScript 79
7.1 管理作用域 79
7.1.1 使用局部变量 81
7.1.2 增长作用域链 83
7.2 高效的数据存取 85
7.3 流控制 88
7.3.1 快速条件判断 89
7.3.2 快速循环 93
7.4 字符串优化 99
7.4.1 字符串连接 99
7.4.2 裁剪字符串 100
7.5 避免运行时间过长的脚本 102
7.5.1 使用定时器挂起 103
7.5.2 用于挂起的定时器模式 105
7.6 总结 107
第8章:可伸缩的Comet 109
8.1 Comet工作原理 109
8.2 传输技术 111
8.2.1 轮询 111
8.2.2 长轮询 112
8.2.3 永久帧 113
8.2.4 XHR流 115
8.2.5 传输方式的前景 116
8.3 跨域 116
8.4 在应用程序上的执行效果 118
8.4.1 连接管理 118
8.4.2 测量性能 119
8.4.3 协议 119
8.5 总结 120
第9章:超越Gzip压缩 121
9.1 这为什么很重要 121
9.2 问题的根源 123
9.2.1 快速回顾 123
9.2.2 罪魁祸首 123
9.2.3 流行的乌龟窃听者实例 124
9.3 如何帮助这些用户 124
9.3.1 设计目标:最小化未压缩文件的尺寸 125
9.3.2 引导用户 129
9.3.3 对Gzip的支持进行直接探测 130
第10章:图像优化 133
10.1 两步实现简单图像优化 134
10.2 图像格式 135
10.2.1 背景 135
10.2.2 不同图像格式的特性 137
10.2.3 PNG的更多资料 139
10.3 自动无损图像优化 141
10.3.1 优化PNG格式的图像 142
10.3.2 剥离JPEG的元数据 143
10.3.3 将GIF转换成PNG 144
10.3.4 优化GIF动画 144
10.3.5 Smush.it 145
10.3.6 使用渐进JPEG格式来存储大图像 145
10.4 Alpha透明:避免使用AlphaImageLoader 146
10.4.1 Alpha透明度的效果 147
10.4.2 AlphaImageLoader 149
10.4.3 AlphaImageLoader的问题 150
10.4.4 渐进增强的PNG8 Alpha透明 151
10.5 优化Sprite 153
10.5.1 超级Sprite VS.模块化Sprite 154
10.5.2 高度优化的CSS Sprite 155
10.6 其他图像优化方法 155
10.6.1 避免对图像进行缩放 155
10.6.2 优化生成的图像 156
10.6.3 Favicons 157
10.6.4 Apple触摸图标 158
10.7 总结 159
第11章:划分主域 161
11.1 关键路径 161
11.2 谁在划分主域 163
11.3 降级到HTTP/1.0 165
11.4 域划分的扩展话题 168
11.4.1 IP地址和主机名 168
11.4.2 多少个域 168
11.4.3 如何划分资源 168
11.4.4 新型浏览器 169
第12章:尽早刷新文档的输出 171
12.1 刷新文档头部的输出 171
12.2 输出缓冲 173

12.3 块编码 175
12.4 刷新输出和Gzip压缩 176
12.5 其他障碍 177
12.6 刷新输出时的域阻塞 178
12.7 浏览器:最后的障碍 178
12.8 不借助PHP进行刷新输出 179
12.9 刷新输出问题清单 180
第13章:少用iframe 181
13.1 开销最高的DOM元素 181
13.2 iframe阻塞onload事件 182
13.3 使用iframe并行下载 184
13.3.1 脚本位于iframe之前 184
13.3.2 样式表位于iframe之前 185
13.3.3 样式表位于iframe之后 186
13.4 每个主机名的连接 187
13.4.1 iframe中的连接共享 187
13.4.2 跨标签页和窗口的连接共享 188
13.5 总结使用iframe的开销 190
第14章:简化CSS选择符 191
14.1 选择符的类型 191
14.1.1 ID选择符 192
14.1.2 类选择符 193
14.1.3 类型选择符 193
14.1.4 相邻兄弟选择符 193
14.1.5 子选择符 193
14.1.6 后代选择符 193
14.1.7 通配选择符 194
14.1.8 属性选择符 194
14.1.9 伪类和伪元素 194
14.2 高效CSS选择符的关键 194
14.2.1 最右边优先 195
14.2.2 编写高效的CSS选择符 195
14.3 CSS选择符性能 197
14.3.1 复杂的选择符影响性能(有时) 197
14.3.2 应避免使用的CSS选择符 200
14.3.3 回流时间 201
14.4 在现实中测量CSS选择符 202
附录:性能工具 205
索引 221

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_786739.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WordPress 捐赠插件漏洞,导致网站遭受零日攻击

开发四年只会写业务代码,分布式高并发都不会还做程序员? 使用“Total Donations”插件的 WordPress 网站,Defiant 建议网站管理员从他们的服务器中删除该插件,防止黑客利用其代码漏洞攻击网站。过去一周,来自 Defian…

分享一些好用的网站

前言 这两年收藏了不少网站,特地整理一下,把一些大家都可能用得上的分享出来,希望能对你有用。 考虑到有一些网站大多数人都知道,所以我就不列出来了。 我把这些网站分为了几大类: 工具类素材类社区类工具类 1、start.…

阿里云 - 免费 CA 证书申请 + Nginx 实现网站https部署 + http强制跳转https

1,进入阿里云,找到导航栏下安全下有个CA证书服务; 2,点进去之后点击立即购买; 3,点进来默认是看不到免费的,点击Symantec; 4,然后点击增强型; 5&#xff…

程序员网站推荐

希望你能遇到更好的网站。 1.git学习 猴子都能懂的GIT入门 https://backlog.com/git-tutorial/cn/stepup/stepup1_1.html 2.问答平台 stackoverflow https://stackoverflow.com/ n.遇到了再添加 本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可…

6个超给力网站资源共享 一分钟吊起你的兴趣

超给力的网站资源分享给你们,娱乐、生活、学习应有尽有,赶紧来看看吧! 千千音乐:http://music.taihe.com/songlist千千音乐是中国音乐门户之一,为你提供海量正版高品质音乐,权威的音乐榜单,快速的新歌速递,契合你的主题电台,人性化…

51CTO网站博客更新声明

51CTO博客自成立以来,受到网友广泛关注,为了能够提供更好的服务,51CTO网站决定对博客栏目进行大幅度改版。 截止到6月25日,网站后台管理界面风格已经调整完成,此目的是为了能让广大使用者更方便地使用我们的博客产品。…

学习前端的好处,网站文章复制不了?别扯.

很多时候我们在网上浏览文章或查看资料的时候,看到写的非常好的句子想要复制粘贴保存一下,这是拖动鼠标,发现“选不中,复制不了”,哎,这时候咱们前端高能出手,这都不是事儿!很简单&a…

python爬取证券之星网站

周末无聊,找点乐子。。。#coding:utf-8 import requests from bs4 import BeautifulSoup import random import time#抓取所需内容 user_agent ["Mozilla/5.0 (Windows NT 10.0; WOW64)", Mozilla/5.0 (Windows NT 6.3; WOW64),Mozilla/5.0 (Windows NT …

seo我告诉你

seo我告诉你,这回seo真的告诉你百度云链接 链接:http://pan.baidu.com/s/1qYpM9y8 密码:mad6 seo优化教程:

介绍MyBatis代码生成网站(六) --- SQL方法的选择

为什么80%的码农都做不了架构师?>>> 一.简介 网址: http://www.fwjava.com 操作流程: 详见“ 介绍MyBatis代码生成网站(一) --- 基本操作 ” 需求描述: 在实际的应用开发中 , 我们希望在14个大类26个SQL方法中 , 选择生成自己想要的几个特定方法. 那么&…

python多页网站目录_Python爬取网址中多个页面的信息

通过上一篇博客了解到爬取数据的操作,但对于存在多个页面的网址来说,使用上一篇博客中的代码爬取下来的资料并不完整。接下来就是讲解该如何爬取之后的页面信息。 一、审查元素 鼠标移至页码处右键,选择检查元素接着屏幕下方就会出现对应的ht…

给自己的网站加入智能聊天功能

引言 现在突然发现有很多 QQ 群都开启了群机器人的功能,其中有两个角色,他们分别是:Baby Q 和 QQ 小冰。在 Q 群中,你可以对他们进行任意程度的调戏,不过,遗憾的是鱼和熊掌不可得兼,一个群只能进…

用PHP做采集功能网站的思路

2019独角兽企业重金招聘Python工程师标准>>> 1、指定一个列表页,用curl或file_get_contents将页面读取进来; 2、用正则或者XML分析DOM,获取到列表中文章的超链接,将其保存为一个任务数组; 3、遍历数组&…

刷网站关键字_「李知恩死亡」刷爆韩网吓坏IU粉丝!Luna被指蹭热度,妹妹大爆料...

一夜之间「李知恩」、「李知恩死亡」关键字刷爆韩国各大网站,让诸多IU粉丝心碎,众人仔细查证之后才发现是个大乌龙,这才松了一口气。事情的起因是3月3日晚播出的纪录片《人真好》,作为纪录片主人公的Luna提到了「李知恩이지은」去…

phpexcel如何预览数据_收藏 | 大数据学习网站

是新朋友吗?记得先点蓝字关注我哦~今日课程菜单Java全栈开发 | Web前端H5大数据开发 | 数据分析人工智能Python | 人工智能物联网来源:小职(z_zhizuobiao)找我:✅ 解锁高薪工作 ✅ 免费获取干货教程未完待续如今,得大数…

一步步构建大型网站架构

之前我简单向大家介绍了各个知名大型网站的架构,MySpace的五个里程碑、Flickr的架构、YouTube的架构、PlentyOfFish的架构、WikiPedia的架构。这几个都很典型,我们可以从中获取很多有关网站架构方面的知识,看了之后你会发现你原来的想法很可能…

网摘是否影响网络推广和SEO

在网络推广中,网摘推广一直是作为必备的推广方式之一,任何XX推广大全必有网摘推广这一项,网摘和网络收藏夹,我姑且把它们归为一类吧。这种推广方式持续好几年了,那么现在,网摘是否还能影响网站推广和SEO呢&…

flash快速入门_快速跟踪您的Flash网站

flash快速入门Many Websites that use Flash could be optimized to load much more quickly than they currently do. By breaking up one large .swf into multiple smaller .swf files, you can decrease the time it takes your site to load, while at the same time maki…

html网页收藏夹小图标,在网页标题栏上和收藏夹显示网站logo的实现方法

在网页标题栏上和收藏夹显示网站logo的实现方法发布时间:2016-03-16 15:30:32 作者:佚名 我要评论下面小编就为大家分享一篇在网页标题栏上和收藏夹显示网站logo的实现方法。希望对大家有所帮助。一起跟随小编过来看看吧,祝大家游戏愉快…

django搭建一个小型的服务器运维网站-基于websocket的实时日志实现

目录 项目介绍和源码; 拿来即用的bootstrap模板; 服务器SSH服务配置与python中paramiko的使用; 用户登陆与session; 最简单的实践之修改服务器时间; 查看和修改服务器配置与数据库的路由;基于websocket的实时日志实现&…