Web 前端优化最佳实践之 Server 篇
来源:互联网 发布:波克捕鱼算法 编辑:程序博客网 时间:2024/04/26 05:54
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 OnExpiresByType image/gif "modification plus 1 weeks"
Lighttpd 启用 mod_expire 模块 后:
$HTTP["url"] =~ "/.(jpg|gif|png)___FCKpd___1quot; { 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。
--EOF--
Updated: 另请参见楼下高春辉的留言,很精彩。
几个不同或者需要补充的地方:1、“当然,Etag 对多数站点性能的影响并不是很大。”应该说 Etag 在正确使用的情况下,会让大量的请求以 304 头方式响应,可以相当的节省服务器资源和带宽。之前一些地方写的不要使用 Etag,是基于有些 webserver 的 Etag 的计算方法中包含了 inode,这在多台web服务器的情况不可采用的,而改变这个计算方法就可以了。
2、对于尽早刷新这点,PHP 几乎是做不到的。即使你执行了 flush 以及类似的函数,也要等到请求完全执行之后,才会输出给浏览器端。
3、AJAX 使用 GET 和 POST 各有好处,GET 方式可以更快响应,但是可能会有被浏览器缓存的问题,一般都需要加个随机数来避免,POST 方式则不会。所以最好是根据自己的情况分别使用 GET 和 POST 方法。
- Web 前端优化最佳实践之 Server 篇
- Web 前端优化最佳实践之 Server 篇
- Web 前端优化最佳实践之 Server 篇
- Web 前端优化最佳实践之 Server 篇
- Web 前端优化最佳实践之内容篇
- Web 前端优化最佳实践之内容篇
- Web 前端优化最佳实践之 Cookie 篇
- Web 前端优化最佳实践之 Cookie 篇
- Web 前端优化最佳实践之 CSS 篇
- Web 前端优化最佳实践之内容篇
- Web 前端优化最佳实践之 CSS 篇
- Web 前端优化最佳实践之 Cookie 篇
- Web 前端优化最佳实践之 CSS 篇
- Web 前端优化最佳实践之 JavaScript 篇
- Web 前端优化最佳实践之图象篇
- Web 前端优化最佳实践之 JavaScript 篇
- Web 前端优化最佳实践之图象篇
- Web 前端优化最佳实践之 Mobile(iPhone) 篇
- C++调用matlab时可能遇到的问题和相关设置
- CSS高手教你适用“em”元素
- Java编程那些事儿50—多维数组使用示例2
- XmlHttp异步获取网站数据的例子
- BABY
- Web 前端优化最佳实践之 Server 篇
- hibernate的pom文件配置
- 解决vs2002,2003在IE7下不能调试的方案
- MACBOOK重装上阵(软件大全)
- Web 前端优化最佳实践之内容篇
- 菜单及权限,以及工作流的数据库设计
- hibernate官方faq摘录
- 嵌入式实时操作系统uC/OS-II概述
- Web 前端优化最佳实践之 Cookie 篇