文中内容大多摘自
High Performance Web Sites
14 Steps to Faster-loading Web Sites
一 减少HTTP请求
图片
1:图片地图 那就是html的<map>标签,不过浏览器支持不是太好
2:Css Sprite 使用一张大图保存所需要的图片,减少下载所需要的次数,同时也可以衍生出了Google那种图片的使用方式
设置一个元素中一种类型元素的css样式的background-img:url(/...)
然后在其他子元素中进行修改偏移量 background-position:100px,0;margin-right:0px
3:使用内嵌图片,在img标签的src:"data:url.jpg" 这样页面生成的时候就会自动嵌入图片,不过缺点也是IE不支持,使用
这种的情况下,也建议放在css文件中
合并脚本和样式表(后面也会涉及到脚本和样式表的精简)
二 使用内容发布网络(CDN)
就是通过专门的服务提供商,在不同的区域方式放置保存静态文件的服务器,便于加快局部地区的加载速度
三 在Http Header中添加Expires
Web服务器通过Expires头来告诉Web客户端它可以使用一个组件的当前副本,直到指定的日期为止(比如10年)
会在Http的响应中看到
Expires: Sat, 30 Mar 2019 10:52:16 GMT //表示过期的时间
在Http1.1中又提出了另外一种选择,因为Expires会要求和服务器时间严格同步
Cache-Control:max-age=315360000
这里使用max-age 标签表示被缓存多久
PS: 有少量浏览器不支持http1.1,且上面两种同时出现,则会优先使用max-age
这种头部的配置,可以通过Apache模块进行配置
对于可缓存的文件,应该包括图片,脚本,样式表,flash组件
对于缓存文件的情况,为了便于更新,可以使用统一的改名规则,比如将版本嵌在文件名中
四 压缩组件
主要使用Gzip
客户端请求的 Accept-Encoding:gzip,deflate
服务端通过判断返回 Content-Encoding:gzip
主要也是通过Apache来进行模块化配置,需要注意图片和PDF不需要进行压缩
五 将样式表放在顶部
将样式表放在顶部的Head标签中 (css at the Top),防止白屏的出现,会逐步的呈现
将样式表文件包含到页面的两种方法
<link rel="stylesheet" href="stx.css"> //注意这里标签不需要进行/闭合
<style>
@import url("stx.css");
</style>
两种的区别在于后者会导致下载的无序,所以建议还是使用Link标签,并且放在Head中
六 将脚本放在底部
在浏览器中,一般都会从同一个主机发起两个请求,实现并行的下载,不过用户可以通过设置进行修改.
而对于脚本进行下载的时候,会阻塞其他的并行下载,知道其完成下载,因为浏览器设置需要等待,为了
避免Js对页面的修改,以及保证JavaScript执行顺序的正确.
七 避免CSS表达式
只能在IE中使用
width:expression(document.body.clientWidth < 600 ? "600px" : "auto")
min-width:600px
由于IE忽视min-width,所以需要expression进行表示
问题在于,表达式有可能在很多时候被触发,比如鼠标移动,从而导致性能问题
有两种解决的方法
1:使用一次性表达式,就是将A属性中使用expression(function(this))调用一个JavaScript的Function
然后在Function中修改掉通过传入的参数.style.A属性进行修改原数据,这样表达式只会执行一次
2:使用事件处理器,就是在指定的事件中进行修改样式,比如onrisize中修改大小
八 使用外部的JavaScript和CSS
小规模的情况下,内部Js和CSS速度会更快一些,如果大规模,则外部文件会更有效的提高重复利用率和缓存
可以同时使用两种情况,比如在首页中使用内嵌,同时在首页的onload事件中设置setTimeOut延迟1秒去加载
当前以及后面所需要的js和css
//加载JavaScript
function downloadJs(url){
var elem = document.createElement("script");
elem.src = url; //发起请求
document.body.appednChild(elem);
}
//加载CSS
function downloadCss(url){
var elem = document.createElement("link");
elem.rel = "stylesheet";
elem.type = "text/css";
elem.href = url; //发起请求
document.body.appednChild(elem);
}
九 减少DNS查找
唯一能做的还是增加缓存的对象,其他一般是服务器硬件进行的部署
十 精简JavaScript
精简 是从代码中移除不必要的字符以减少其大小,进而改善加载时间(包括空格,换行,制表符)
混淆 会修改函数和变量的名字(类似J2Me的混淆),不过会变的更难阅读
精简的工具有JSMin,ShrikSafe
混淆能够带来更多的节省,不过经过GZip压缩后,差距会减小
可以使用JSMin对内嵌的脚本进行精简(可以关注下)
对于CSS,精简的意义不大,更多的去利用继承关系,也就是层叠
十一 避免重定向
30x的http状态码用于表示重定向,其中301和302使用的最多
需要对组件中的减少重定向的次数,否则会引起延迟
可以用于改善的技巧
1:注意在必要的URL结尾加上/,漏掉就会发生301响应,这是由于服务器的设置照常,比如Apache
2:减少后端的重定向请求使用次数
信标的概念
一个HTTP请求,其URL中包含了跟踪信息,然后从Web服务器的日志中提取出来,通常是响应一个1px * 1px的透明图片
因为,更小,不会被缓存,也不会改变浏览器的状态,可以保证页面被卸载前,能够请求传输完毕.
十二 移除重复的脚本
这个是有可能避免的,主要因素是团队的大小和脚本数量
十三 配置ETag
配置或者移除ETag,并不方便使用
十四 使Ajax可缓存
操作比较复杂.需要从实际情况触发进行处理.
分享到:
相关推荐
高性能网站建设指南.pdf高性能网站建设指南.pdf高性能网站建设指南.pdf高性能网站建设指南.pdf高性能网站建设指南.pdf高性能网站建设指南.pdf高性能网站建设指南.pdf高性能网站建设指南.pdf高性能网站建设指南.pdf
高性能网站建设指南.pdf高性能网站建设指南.pdf高性能网站建设指南.pdf高性能网站建设指南.pdf高性能网站建设指南.pdf高性能网站建设指南.pdf
《高性能网站建设指南》是一本深度探讨如何提升网站性能的专业书籍,由Steve Souders撰写,中文版和英文原版都包含在压缩包中。这本书针对Web开发者和网站优化人员,提供了许多实用的策略和技巧,旨在帮助他们创建更...
不过,我可以根据标题《高性能网站建设指南.pdf》和您提供的文件信息描述,推测可能涉及的知识点,并将其详细阐述。 高性能网站建设知识点: 1. 网站性能优化基础 网站性能优化是确保网站在用户访问时能够快速响应...
在《高性能网站建设指南》中,作者给出了14条具体的优化原则,每一条原则都配以范例佐证,并提供了在线支持。《高性能网站建设指南》内容丰富,主要包括减少HTTP请求、Edge Computing技术、Expires Header技术、Gzip...
高性能网站建设指南.part2.rar..........
在构建高性能的网站时,有许多关键知识点需要理解并掌握,以确保网站的快速响应和高效运行。以下是对这些文件内容的概括和详细说明: 1. **高性能MySQL(第2版)**:MySQL是一款广泛使用的开源关系型数据库管理系统。...
《高性能网站建设进阶指南》是一本专为WEB开发者设计的性能优化手册,...以上这些内容都是《高性能网站建设进阶指南》可能涵盖的知识点,通过学习和实践,WEB开发者可以更好地掌握性能优化技巧,提升网站的整体效能。
《高性能网站建设指南》结合Web2.0以来Web开发领域的最新形势和特点,介绍了网站性能问题的现状、产生的原因,以及改善或解决性能问题的原则、技术技巧和最佳实践。重点关注网页的行为特征,阐释优化Ajax、CSS、...
《高性能网站建设指南》系列是针对Web开发者的一套宝贵资源,旨在提供网站性能优化的最佳实践。这一系列包括两本书——《高性能网站建设指南》和《高性能网站建设进阶指南》,涵盖了从基础到高级的全方位优化技巧。 ...
这两本指南——《高性能网站建设指南》和《高性能网站建设进阶指南:WEB开发者性能优化最佳实践》将为我们揭示解决这些问题的关键策略。 首先,我们来探讨《高性能网站建设指南》中的核心概念。这本书强调了“速度...
NI LabVIEW高性能FPGA开发者指南zip,高性能LabVIEW FPGA应用程序将NI可重配置I/O(RIO)设备的性能扩展到定时、FPGA资源、以及其他方面。通过总结常用的LabVIEW FPGA优化概念和技巧,此指南旨在帮助您创建高性能应用...