Best Practices for Speeding Up Your Web Site
原文:
http://developer.yahoo.com/performance/rules.html#page-nav
优化网站性能 提高网站速度访问速度的14条实践
http://www.phpv.net/html/1660.html
Minimize HTTP Requests 减少HTTP请求次数
80/20法则:http://yuiblog.com/blog/2006/11/28/performance-research-part-1/
当浏览一个页面的时候,浏览器花费80%的时间在获取外联的js,CSS,Image等等。
l Combined files:
每个页面包含的每个引用文件都需要一次HTTP请求。
最佳实践:尽可能把文件组合,例如把一个页面需要的多个js(css)文件整合到一个js(css)文件,甚至对某些访问量大的页面,直接把js和css放在页面中,而不单独做外部链接。
l CSS Sprites:
将多个image合并成一个大的image,通过CSS来控制大image的位置和展示方式,例如使用backgroud image 和background position来得到自己所需的那部分image。
中文介绍:http://oncoding.net/rebuild/css/article200904/150.html
l Image maps:
和CSS Sprites有点类似,image maps更多的是把相邻的image组合成一个大的image.
l Inline images:
把image嵌入页面中data:
URL scheme,从而减少访问image的HTTP请求,但是会增加页面的大小。而且不是所有的浏览器都支持。
Use a Content Delivery Network 使用内容分发网络
A content delivery network (CDN) is a collection of web servers distributed across multiple locations to deliver content more efficiently to users. The server selected for delivering content to a specific user is typically based on a measure of network proximity. For example, the server with the fewest network hops or the server with the quickest response time is chosen.
内容分发网络:在网络中部署节点服务器,用户访问的时候,选择最佳节点服务器。
具体介绍:http://baike.baidu.com/view/21895.htm
Add an Expires or a Cache-Control Header设置缓存时间
Browsers (and proxies) use a cache to reduce the number and size of HTTP requests, making web pages load faster. A web server uses the Expires header in the HTTP response to tell the client how long a component can be cached.
通过缓存可以减少HTTP请求次数。
l For static components: implement "Never expire" policy by setting far future Expires header
l For dynamic components: use an appropriate Cache-Control header to help the browser with conditional requests.
对不同的组件,设置不同的缓存时间。
Gzip Components GIZP压缩
目前绝大多数的浏览器都支持gzip,所以可以将网站使用的所有文本内容JS, CSS, HTML, JSP, PHP, XML等均采用gzip压缩,提高传输速度(相应速度)。
http://www.gzip.org
Put Stylesheets at the Top 样式表放在页面上方
将CSS样式表放在页面上方<HEAD>里。
Css层叠样式表,后面的可能会覆盖前面的样式,浏览器为了避免重绘页面,所以只有当所有CSS载入完成后,才展现页面。
Put Scripts at the Bottum 脚本文件放在页面最后
Avoid CSS Expressions 避免CSS表达式
Make JavaScript and CSS External Javascript和CSS外联
这一点和减少HTTP请求看起来冲突,但是如果有cache的话,外联的Javascript和CSS文件HTTP请求问题可以得到解决,而且外联后页面的大小会减少。此外,外联便于维护。
Reduce DNS Lookups 减少DNS查询
DNS查询会花20-120ms,页面中应尽量少造成DNS查询。
例如页面中包含很多广告。
Minify JavaScript and CSS 压缩Javascript和CSS
减少Javascript和CSS文件的大小。
前面也提到了由于浏览器都支持压缩传输,所以可以先用GZIP压缩,在用其他的工具压缩(例如去掉空格,替换函数名等)
工具: JSMin and YUI Compressor
在线工具:http://dean.edwards.name/packer/
Avoid Redirects 避免重定向
每次重定向都会增加一次HTTP请求。
Remove Duplicate Scripts 移除重复脚本
减少HTTP请求,减少页面大小,便于维护。
Configure Etags 配置Etags标签
客户端得缓存有可能不是最新的,通过在Server端配置Etags标签来标记当前客客户的缓存是否是最新的。
具体过程如下
1. 客户端请求一个页面(A)。
2. 服务器返回页面A,并在给A加上一个ETag。
3. 客户端展现该页面,并将页面连同ETag一起缓存。
4. 客户再次请求页面A,并将上次请求时服务器返回的ETag一起传递给服务器。
5. 服务器检查该ETag,并判断出该页面自上次客户端请求之后还未被修改,直接返回响应304(未修改——Not Modified)和一个空的响应体。
可参考:使用ETags减少Web应用带宽和负载
分享到:
相关推荐
雅虎,作为早期的互联网巨头,基于其丰富的经验和深入的研究,总结出了34条优化网站访问速度的方法,这些建议对于任何希望提高网站性能的开发者或网站管理员都极具价值。下面,我们将详细解析这些方法,帮助你理解并...
通过对最短寻道时间优先(SSTF)算法的设计与实现,我们不仅深入了解了如何通过优化磁盘访问顺序来提高磁盘访问速度的基本原理,还具体实践了算法的编程实现。这种算法能够在一定程度上减少磁盘寻道时间,提高磁盘I/...
1. 提升访问速度:静态HTML文件加载更快,减少了数据库查询和动态脚本处理的时间。 2. 减轻服务器压力:大量请求可以直接由Web服务器处理,无需PHP等后端语言介入。 3. SEO优化:搜索引擎更喜欢静态页面,有利于提高...
通过使用PBitmap记录类型,我们可以直接访问位图的内存缓冲区,从而提高访问速度。PBitmap记录类型通常包括一个指向像素数据的指针,这样可以避免TBitmap类的间接访问,减少内存开销。 1. 定义PBitmap记录类型: ``...
加速局域网访问速度 - **目的**:加快访问局域网共享资源的速度。 - **操作步骤**: - 在注册表编辑器中找到`HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace`...
- **CDN服务**:利用内容分发网络(CDN)服务分发静态资源,提高全球访问速度。 - **数据库优化**:定期清理数据库,删除不再使用的插件和主题数据,减少数据库大小。 - **选择高性能主机**:考虑使用支持高性能配置的...
网站优化是互联网行业中至关重要的一个领域,其核心目标是提高网站的用户体验,进而提升网站的转化率。转化率是指访问者在网站上完成特定目标(如购买产品、填写表单或订阅服务)的比例。深入理解网站优化,既需要...
总结来说,要提高SQL Server的访问速度,需要从数据库设计、索引优化、SQL查询语句优化、视图和存储过程等多个方面着手。合理的设计和优化可以大大提升数据库的性能,减少延迟,提高并发处理能力,确保系统稳定运行...
镜像技术主要应用于大型网站,以解决不同网络环境和地理区域的用户访问速度差异问题。通过在多个地理位置部署相同的网站内容,可以显著缩短用户访问延迟,提高用户体验。此外,镜像站点的数据可以通过定时或实时同步...
网站用户体验是衡量用户在浏览...总结来说,提高网站用户体验是一个全方位的工作,需要综合考虑技术、设计、内容和用户行为等多个方面。不断迭代和优化,以满足用户日益增长的期望,是每个网站运营者都需要关注的重点。
总结起来,提高Oracle数据库查询统计速度涉及多个方面,包括合理分配和管理表空间,优化段和回滚段配置,以及确保并发处理能力和数据安全性。这些措施都是基于数据库物理设计和性能调优的理论,通过调整数据库的内部...
数据库连接是网站应用中的关键资源之一,合理的连接池管理能够显著提高应用的响应速度和处理能力。ASP.NET提供的`ConnectionPool`机制允许复用数据库连接,避免了频繁创建和关闭连接带来的性能损耗。在系统中使用...
1. 服务器集群:通过部署多台服务器组成一个集群,可以分摊访问请求,避免单点故障,从而提高网站的可用性和稳定性。 2. 缓存机制:将静态内容缓存到边缘服务器或CDN(内容分发网络),可以减少对后端服务器的请求...
通过简化导航、优化加载速度、提高页面响应速度等方式,提升用户在网站上的浏览体验。 8. 错误修复与更新:定期检查网站内容,修正错误,更新过时信息,保持网站的准确性和专业性。 9. 内容多元性:为了满足不同...
Java JSP页面静态化是一种常见的优化技术,其主要目的是通过将动态内容转化为静态HTML页面,以减少对数据库的访问次数,提高网站的响应速度和用户体验。以下是对这一主题的详细阐述: 1. **JSP页面静态化原理**: ...
1. 高速缓存(Cache):提高CPU访问速度,分为L1、L2、L3缓存。 2. 主存储器:RAM(随机访问存储器)和ROM(只读存储器)。 3. 辅助存储器:硬盘、SSD等,容量大但速度慢。 六、寻址方式 1. 直接寻址、间接寻址、...