- 浏览: 13748094 次
- 性别:
- 来自: 洛杉矶
文章分类
- 全部博客 (1994)
- Php / Pear / Mysql / Node.js (378)
- Javascript /Jquery / Bootstrap / Web (435)
- Phone / IOS / Objective-C / Swift (137)
- Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux (335)
- Perl / Koha / Ruby / Markdown (8)
- Java / Jsp (12)
- Python 2 / Wxpython (25)
- Codeigniter / CakePHP (32)
- Div / Css / XML / HTML5 (179)
- WP / Joomla! / Magento / Shopify / Drupal / Moodle / Zimbra (275)
- Apache / VPN / Software (31)
- AS3.0/2.0 / Flex / Flash (45)
- Smarty (6)
- SEO (24)
- Google / Facebook / Pinterest / SNS (80)
- Tools (22)
最新评论
-
1455975567:
xuezhongyu01 写道wocan23 写道我想问下那个 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
xuezhongyu01:
wocan23 写道我想问下那个111.1是怎么得来的我也看不 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
18335864773:
试试 pageoffice 在线打开 PDF 文件吧. pag ...
jquery在线预览PDF文件,打开PDF文件 -
青春依旧:
opacity: 0.5; 个人喜欢这种方式!关于其他css特 ...
css透明度的设置 (兼容所有浏览器) -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
搞定网页打印自动分页问题
1. 内容篇
Yahoo! 的 Exceptional Performance team 在 Web 前端方面作出了卓越的贡献。广为人知的优化规则 也由 13 条到 14 条,再到 20 条,乃至现在的 34 条 --真是与时俱进啊。最新的 34 条也针对不同的角度做了分类。
面向内容的优化规则目前有 10 条。
1. 尽量减少 HTTP 请求 (Make Fewer HTTP Requests)
作为第一条,可能也是最重要的一条。根据 Yahoo! 研究团队的数据分析,有很大一部分用户访问会因为这一条而取得最大受益。有几种常见的方法能切实减少 HTTP 请求:
- 1) 合并文件 ,比如把多个 CSS 文件合成一个;
- 2) CSS Sprites 利用 CSS background 相关元素进行背景图绝对 定位;参见:CSS Sprites: Image Slicing's Kiss of Death
- 3) 图像地图
- 4) 内联图象 使用 data: URL scheme 在实际的页面嵌入图像数据.
2. 减少 DNS 查找 (Reduce DNS Lookups)
必须明确的一点,DNS 查找的开销是很大的。另外,我倒是觉得这是 Yahoo! 所有站点的通病,Yahoo!主站点可能还不够明显,一些分站点,存在明显的类似问题。对于国内站点来说,如果过多的使用了站外的 Widget ,也很容易引起过多的 DNS 查找问题。
3. 避免重定向 (Avoid Redirects)
不是绝对的避免,尽量减少。另外,应该注意一些不必要的重定向。比如对 Web 站点子目录的后面添加个 / (Slash) ,就能有效避免一次重定向。http://www.dbanotes.net/arch 与 http://www.dbanotes.net/arch/ 二者之间是有差异的。如果是 Apache 服务器,通过配置 Alias 或mod_rewrite 或是 DirectorySlash 能够消除这个问题。
4. 使得 Ajax 可缓存 (Make Ajax Cacheable)
响应时间对 Ajax 来说至关重要,否则用户体验绝对好不到哪里去。提高响应时间的有效手段就是 Cache 。其它的一些优化规则对这一条也是有效的。
5. 延迟载入组件 (Post-load Components)
6. 预载入组件 (Preload Components)
上面两条严格说来,都是属于异步 这个思想灵活运用的事儿。
7. 减少 DOM 元素数量 (Reduce the Number of DOM Elements)
8. 切分组件到多个域 (Split Components Across Domains)
主要的目的是提高页面组件并行下载能力。但不要跨太多域名,否则就和第二条有些冲突了。
9. 最小化 iframe 的数量 (Minimize the Number of iframes)
熟悉 SEO 的朋友知道 iframe 是 SEO 的大忌。针对前端优化来说 iframe 有其好处,也有其弊端,一分为二看问题吧。
10. 杜绝 http 404 错误 (No 404s)
对页面链接的充分测试加上对 Web 服务器 error 日志的不断跟踪能有效减少 404 错误,亦能提升用户体验。值得一提的是,CSS 与 Java Script 引起的 404 错误因为定位稍稍"难"一点而往往容易被忽略。
这是内容篇的 10 条。应该说具体引导性的内容还不够详细。逐渐会根据自己的理解补充上来。
2. Server 篇
Web 前端优化最佳实践第二部分面向 Server 。目前共计有 6 条实践规则。【注,这最多算技术笔记,查看最原始内容,还请访问:Exceptional Performance : Best Practices for Speeding Up Your Web Site 】
1. 使用 CDN (Use a Content Delivery Network)
国内 CDN 的普及还不够。不过我们有独特的电信、网通之间的问题 ,如果针对这个作优化,基本上也算能收到 CDN 或类似的效果吧(假装如此)。【Tin 说国内 CDN 用的挺多,看看 CDN 厂商的市场就知道了,还没走入寻常百姓家】
2. 添加 Expires 或 Cache-Control 信息头 (Add an Expires or a Cache-Control Header)
各个浏览器都有针对的方案, Apache 例子【注意:下面的说明例子还不够精细,具体的环境上还要加一些调整】:
ExpiresActive On ExpiresByType image/gif "modification plus 1 weeks"
Lighttpd 启用 mod_expire 模块 后:
$HTTP["url"] =~ "\.(jpg|gif|png)$" { expire.url = ( "" => "access 1 years" ) }
Nginx 例子参考:
location ~* \.(jpg|gif|png)$ { if (-f $request_filename) { expires max; break; } }
3. 压缩内容 (Gzip Components)
对于绝大多数站点,这都是必要的一步,能有效减轻网络流量压力。或许有人担心对 CPU 压缩对于 CPU 的影响,放心大胆的整吧,没事儿。Nginx 例子:
gzip on; gzip_types text/plain text/html text/css ext/javascript;
另外参见:IIS 如何启用 Gzip 压缩?
4. 设置 Etags (Configure ETags)
对于 Etag ,可能是多数网站维护者都会忽略的地方。在这一系列优化规则出现之前,可能互联网上绝大多数站点都对这个问题忽略了。当然,Etag 对多数站点性能的影响并不是很大。除非是面向 RSS 的网站。【看到有朋友批评说写的简略,并且说 IE 不支持 ETag。明确说一下:IE 支持 ETag,倒是使用 IIS 要注意相关 Etag Bug。】
补充:我的意思是"很多网站在不注意的情况下都是打开 Etag 的,而没有网站关心如何用,消耗资源而不知。并不是说 Etag 不好,合理利用 Etag ,绝对能取得很好的收益.
5. 尽早刷新 Buffer (Flush the Buffer Early)
对这一条,琢磨了半天,貌似还是异步 的思路。能更好的提升用户体验?
6. 对 AJAX 请求使用 GET 方法 (Use GET for AJAX Requests)
XMLHttpRequest POST 要两步,而 GET 只需要一步。但要注意的是在 IE 上 GET 最大能处理的 URL 长度是 2K。
3.Cookie 篇
Web 前端优化最佳实践第三部分面向 Cookie 。目前只有 2 条实践规则。 Cookie 是个很有趣的话题。根据 RFC 2109
的描述,每个客户端最多保持 300 个 Cookie,针对每个域名最多 20 个 Cookie (实际上多数浏览器现在都比这个多,比如
Firefox 是 50 个) ,每个 Cookie 最多 4K,注意这里的 4K 根据不同的浏览器可能不是严格的 4096 。别扯远了,对于
Cookie 最重要的就是,尽量控制 Cookie 的大小,不要塞入一些无用的信息。 这个话题在此前针对 Web 图片服务器
的讨论中曾经提及。这里说的 Web 组件(Component),多指静态文件,比如图片 CSS
等,Yahoo! 的静态文件都在 yimg.com 上,客户端请求静态文件的时候,减少了 Cookie 的反复传输对主域名 (yahoo.com) 的影响。 从这篇 When the Cookie Crumbles
能看出,MySpace 和 eBay 的 Cookie 都不小的,想必是对用户行为比较关心。eBay 前不久构造了 Personalization Platform
,就是从 Cookie 的限制中跳出来。 1. 缩小 Cookie (Reduce Cookie Size)
2. 针对 Web 组件使用域名无关性的 Cookie (Use Cookie-free Domains for Components)
4.CSS篇
Web 前端优化最佳实践第四部分面向 CSS。目前共计有 6 条实践规则。另请参见 Mozilla 开发者中心的文章:Writing Efficient CSS
官方的解释我觉得多少有点语焉不详。这一条其实和用户访问期望
有关。CSS 放到最顶部,浏览器能够有针对性的对 HTML
页面从顶到下进行解析和渲染。没有人喜欢等待,而浏览器已经考虑到了这一点。 个人认为通过 CSS
表达式能做到的事情,通过其它手段也同样能做到而且风险更小一些。 剥离后,能够有针对性的对其进行单独的处理策略,比如压缩或者缓存策略。 如果没有 JavaScript 与 CSS
可能更好。但,这是不可能的,SO,尽量小点吧。语法能简写的简写。 在 IE
中 @import 指令等同于把 link 标记写在 HTML
的底部。而这与第一条相违背。1. 把 CSS
放到代码页上端 (Put Stylesheets at the Top)
2. 避免 CSS
表达式 (Avoid CSS
Expressions)
3. 从页面中剥离 JavaScript 与 CSS
(Make JavaScript and CSS
External)
4. 精简 JavaScript 与 CSS
(Minify JavaScript and CSS
)
5. 使用 <link> 而不是@importChoose <link> over @import
6. 避免使用Filter (Avoid Filters)
5.JavaScript 篇
Web 前端优化最佳实践之 JavaScript 篇,这部分有 6 条规则,和 CSS
篇 重复的有几条。前端优化最佳实践,最重要的还是"实践",要理解这东西容易得很,关键是要去"实践",去"执行",去"反馈",去获取受益。 当一个脚本在下载的时候,浏览器干不了其它的事儿(串行了)。所以,把它扔到最后面去处理。对于一些功能性的脚本,可能实现起来有些两难。不过对于
国内网站来说,有很多使用 Google Analytics 服务进行网站数据分析的。这这一点来说,绝对可行的建议,放到页面最底下。 参见 CSS 篇
的描述 参见 CSS 篇
的描述 对于一些历史遗留站点或是论坛类的网站来说,这倒是比较常见的。接手维护人前后变化过多,每个人都有自己的一套。这就会带来一些潜在的麻烦。 除了英文解释外,这里也提醒一下注意关于 Java Script 内存泄漏
的问题。 另外推荐一篇《如何优化 JavaScript 脚本的性能》
,关于 Ajax 优化指导原则,可以参见 提高 Ajax 应用程序性能,避开 Web 服务漏洞
。 后记1)
:整理得差不多之后,发现网络上已经有一篇 《Yahoo!网站性能最佳体验的34条黄金守则》,是翻译稿。看来我做了一部分重复劳动。 后记 2)
:CSS / JavaScript 都有优化规则。但似乎缺少了对 Flash 的优化实践。1. 脚本放到 HTML
代码页底部 (Put Scripts at the Bottom)
2. Make JavaScript and CSS
External
3. 精简 JavaScript 与 CSS
(Minify JavaScript and CSS
)
4. 移除重复脚本 (Remove Duplicate Scripts)
5. 减少 DOM
访问 (Minimize DOM
Access)
有三条指导建议:
6. Develop Smart Event Handlers
6. 图象篇
Web 前端优化最佳实践第六部分面向 图片(Image),这部分目前有 4 条规则。在最近的 Velocity 2008 技术大会上,Yahoo! 的 Stoyan Stefanov 做的 Image Optimization: How Many of These 7 Mistakes Are You Making
也非常有参考价值。结合一起说一下。 使用 GIF
、JPG 还是 PNG
格式的图片? 尽可能的使用 PNG
格式的图片,更多的功能,更小的尺寸(与 GIF
相比)。 对于 PNG
图片,考虑用 Pngcrush
或类似的工具进行优化。常见的工具如下表: 另请参见: Five Tips For the Effective Use of PNG Images
对 JPEG
图片的优化工具: 必需要强调的是,图片设计的同学啊,请考虑设计面向 Web 的图片
,不要动不动就设计超过可接受尺寸之外大家伙,这应该是一种习惯,而不是什么高超的技能,只需要记住就成了。 之前提到过,简单的说就是"利用 CSS
background 相关元素进行背景图绝对定位",把多次 HTTP
调用变为一次调用,更多参考:CSS Sprites: Image Slicing's Kiss of Death
补充一下:对于这个技巧我曾经见到有人滥用的。把多个背景图片揉成一个,减少 HTTP
调用,这是一个很好的思路。但一定要记住这个大图片不能太"重",我看到过 100 多K 的背景图。一个图片就把整个网站拖得很慢。比较好的例子可以参考雅虎关系的这个图
. 更新:使用 CSS
Sprites 的一个潜在的副作用是客户端将消耗更多内存(参考
)。 更多的时候,可能是因为偷懒而没有制作合适大小的图片,如果是批量处理图片的话,可能一条 ImageMagic
命令(convert )就能搞定 。必须提及的是,看到太多的对图片拉伸很难看的页面,救救这些页面! 更小,可缓存,这两条可能都不是问题。问题是,太多站点根本没有 favicon.ico
。有的时候,判断独立域名的 Blog 是否专业,基本看一下是否有 favicon.ico 就差不多了。 补充:视觉设计者应该尽量考虑控制图片大小,推荐在 200K 以下。这不是胡说的,参考页面。
1. 优化图片 (Optimize Images)
2. 使用 CSS
Sprites 技巧对图片优化 (Optimize CSS
Sprites)
3. 不要在 HTML
中使用缩放图片 (Don't Scale Images in HTML
)
4. 用更小的并且可缓存的 favicon.ico (Make favicon.ico Small and Cacheable)
7. Mobile(iPhone)篇
Web 前端优化最佳实践最后一部分是针对移动应用的,其实只是针对 iPhone 的,目前只有两条规则。 这个似乎只是针对 iPhone 研究
的。建议保持单个 Web 数据对象在 25 K 以下。为什么是 25K? Apple 官方信息指出可缓存到内存中的 Web 对象最大支持到 10M,但经过测试,发现也就是 25K 左右。 iPhone 在市场上的优异表现,让 Web 人员不得不考虑如何针对其进行优化。相信这部分内容也在不断变化中。 把Web 页面组件打包成一个多部分组成的文档。其目的是减少 HTTP
请求。对这部分语焉不详,等待后续更新吧。 Updated: 根据这篇 iPhone caching
的文章,可供 Cache 的最大单个数据对象是 15K,而不是前面说的 25K。iPhone 总的 Cache Size 为 1.5M。浏览器地址栏的刷新按钮将导致无条件刷新所有组件。这些也是挺有趣的。1. 单个数据对象小于 25K (Keep Components under 25K)
2. Pack Components into a Multipart Document
来源: http://www.dbanotes.net/web-performance.html
发表评论
-
SASS界面编译工具——Koala的使用
2016-08-24 13:18 4697《SASS 界面编译 ... -
CSS3: 利用分层动画让元素沿弧形路径运动
2016-08-24 13:19 2624原文:Moving along a curved pat ... -
HTML5: 利用SVG动画动态绘制文字轮廓边框线条
2016-08-24 13:14 2170DEMO: 点击这里看效果 ... -
如何制作HTML5 SVG描边文字
2016-08-24 13:15 1896在很多时候,SVG是最容易在网页上做出文字特效的方法。现在S ... -
基本的SVG样式属性
2016-08-24 13:11 2522SVG的样式属性和CSS的语法非常接近,有时甚至是一样的 ... -
SVG 入门教程系列列表
2016-08-19 03:09 1087SVG 入门教程系列列表: SVG 教程 (一) ... -
CSS3: 动画循环执行(带延迟)的实现
2016-08-11 01:23 11120出处:http://www.cnblogs.com/s ... -
CSS3: 常用动画特效及4个最流行的动画库
2016-08-11 01:00 7220一、animates.css animate.css是来自 ... -
HTML5: 全局属性
2016-08-01 08:03 1016出处:http://www.cnblogs.com/s ... -
CSS: 深入理解BFC和Margin Collapse (margin叠加或者合并外边距)
2016-08-01 07:57 2750BFC的理解与应用 首先我们来看看w3c规范对BFC的解释 ... -
详解CSS的盒模型(box model) 及 CSS3新增盒模型计算方式box-sizing
2016-08-01 07:55 1949W3C规范 一般来说,页面中的每一个元素都会形成一个矩形盒 ... -
CSS: div高度自动适应背景图片的高度 How to get div height to auto-adjust to background size?
2016-07-29 13:00 3993原文:CSS: div高度自动适应背景图片的高度 How t ... -
移动开发需要知道的像素知识『多图』
2016-07-29 12:48 922像素(Pixel)对于WEB开 ... -
HTML5: 两个viewport的故事(第一部分)
2016-07-29 12:45 797英文:http://www.quirksmode.org/m ... -
HTML5: 两个viewport的故事(第二部分)
2016-07-28 05:23 825英文:http://www.quirksmode ... -
CSS3 媒体查询移动设备尺寸 Media Queries for Standard Devices (包括 苹果手表 apple watch)
2016-07-28 05:18 10791. Phones and Handhelds a) ... -
CSS3: 移动端开发中 max-device-width 与 max-width 的区别
2016-07-28 05:17 11614翻译自stackoverflow.com,源地址:http: ... -
CSS:媒体查询 CSS3 Media Queries
2016-07-28 05:11 1376定义和使用 使用 @medi ... -
CSS: SASS用法指南 (附视频)
2016-07-28 05:05 999观看视频: CSS: SASS用法指南 ... -
九张 Gif 图回顾 Web 设计的 25 年历史
2016-07-27 10:51 760原文出处: fastcodesign ...
相关推荐
网站Web前端优化主要关注提升网页加载速度、用户体验和性能效率,这一领域对于现代互联网产品至关重要。以下是关于Web前端优化的详细说明: 一、关于Web Web作为一种新媒体,它源自印刷业,但随着互联网的发展,Web...
web前端优化方案的知识点包括: 一、减少HTTP请求 HTTP协议无状态,每次请求都需要建立通信链路并传输数据,服务端需要为每个HTTP请求启动独立线程处理。通信和服务开销昂贵,因此减少HTTP请求可以有效提升访问性能...
关于Web前端优化,网上已经有太多的文章,平时主要用的也就是Firefox的两个插件,Yahoo的YSlow和Google的Page Speed(如果您有其它比较好用的,分享一下哦),它们会对你的网页进行检测,哪些做的比较好,哪些还有待...
在现代的互联网应用开发中,Web前端优化是一个至关重要的环节,它直接影响到用户的体验和网站的性能。"web前端优化"这一主题涵盖了多种技术和策略,旨在提升网页的加载速度、交互响应以及整体用户体验。以下是对这个...
Web 前端优化知识总结 本文总结了 Web 前端优化的知识点,涵盖了页面级别和代码级别的优化方法。优化的目的是提高用户体验和节省资源利用。页面级别的优化方法包括减少 HTTP 请求数、合理设置 HTTP 缓存、资源合并...
本文将深入探讨“web前端优化技巧1”中的关键知识点,并提供实用的优化策略。 首先,减少HTTP请求(Make Fewer HTTP Requests)是优化的核心。每个HTTP请求都会增加页面加载的时间,因为浏览器需要等待服务器的响应...
### Web前端优化最佳实践及工具集锦 #### 一、引言 随着互联网技术的不断发展,用户对Web应用的响应速度和性能提出了更高要求。Web前端优化成为了提高用户体验的重要手段之一。本文旨在介绍一系列Web前端优化的...
"Web前端优化最佳实践"这一主题涵盖了多种技术策略和方法,旨在使网页加载更快,交互更流畅,从而提高用户满意度和搜索引擎排名。以下是一些核心的前端优化知识点: 1. **减少HTTP请求**:每个文件(如CSS、...
Web前端优化是提升网站性能和用户体验的关键步骤,尤其在JavaScript和HTML、CSS为主的前端开发中。本文主要讨论了两个层面的优化策略:页面级别优化和代码级别优化。 首先,页面级别优化关注的是整个页面的加载速度...
Web前端优化是提升Web应用程序性能的关键,它直接影响到用户体验。前端优化主要关注减少页面加载时间、提高响应速度和降低资源消耗。以下是一些由Google和雅虎提出的最佳实践和工具: 1. **避免坏请求**:确保所有...
进行 Web 前端优化是非常必要的,因为用户不能忍受浏览网页的时候,长时间的等待。 知识点四: 影响 Web 前端性能的因素 影响 Web 前端性能的因素包括 HTTP 协议、浏览器工作方式、缓存机制、页面大小、页面结构...
Web前端优化是提升网站性能和用户体验的关键步骤,涵盖了HTML、CSS、JavaScript、图像以及其它资源的优化。优化的目的是为了使页面加载更快,对用户操作响应更迅速,从而提供更友好的浏览体验,并且减少服务器资源...
Web前端性能优化是提升网页用户体验和确保网站成功的关键因素之一。性能优化涉及多个方面,包括但不限于代码优化、资源加载策略、服务器配置等。本篇内容将深入探讨Web前端性能优化的思路与学习方法,结合WebQQ、QQ...
Web前端性能优化是提高网页加载速度和用户体验的关键因素。Yahoo! 的 Exceptional Performance team 提出了一系列不断更新的优化策略,从最初的13条发展到现在的34条,涵盖了多个角度,包括内容、服务器、Cookie、...
web前端笔试题面试题汇总+前端优化总结 web前端笔试题面试题汇总+前端优化总结 web前端笔试题面试题汇总+前端优化总结 web前端笔试题面试题汇总+前端优化总结 web前端笔试题面试题汇总+前端优化总结 web前端笔试题...
针对web前端性能低下的问题,王成、李少元、郑黎晓、缑锦、曾梅琴、刘慧敏等学者系统地提出了一套旨在提高网页加载速度、呈现速度和用户体验的完整Web前端性能优化解决方案。该方案涵盖了服务器端优化、HTML优化、...
让你页面速度飞起来,Web前端性能优化。 让你页面速度飞起来,Web前端性能优化。百度云盘视频资料,下载直接看
六、Web前端优化 Web前端优化是指通过使用HTML、CSS、JavaScript和Ajax等技术来提高网页的性能和用户体验的方法。Web前端优化可以从多方面入手,例如:压缩代码、缓存、使用CDN、避免过多的HTTP请求等。 七、结语 ...