大家好,又见面了,我是你们的朋友全栈君。
Web 应用性能优化黄金法则: 先优化前端程序 (front-end) 的性能,因为这是80% 或以上的最终用户响应时间的花费所在
80%的最终用户响应时间花在前端程序上,而其大部分时间则花在各种页面元素, 如图像、 样式表、 脚本和 Flash 等的下载上
background-image 和 background-position实现部分图片CDN(Content Delivery Network, 内容分发网络 ) 是地理上分布的web server的集合,用于更高效地发布内容。 通常基于网络远近来选择给具体用户服务的 web server 用户离 web server 的远近对响应时间也有很大影响。从用户角度看,把内容部署到多个地理位置分散的服务器上将有效提高页面装载速度
Akamai Technologies, Mirror Image Internet, 或 Limelight Networks 等 CDN 服务提供商的服务将是划算的通过使用Expires header, 在客户端缓存更多的脚本文件、样式表、图像文件和 Flash
Expires header常用于图像文件,但是它也应该用于脚本文件、样式表和 FlashApache 的话,您可以使用ExpiresDefault基于当期日期来设置过期日期,如: ExpiresDefault “access plus 10 years设置过期时间为从请求时间开始计算的10 年通过压缩HTTP响应内容可减少页面响应时间
Web server 检查到 Accept-Encoding 头,它会使用客户端支持的方法来压 缩 HTTP 响应,会设置 Content-Encoding 头,如:Content-Encoding: gzipGzip 是目前最流行及有效的压缩方法浏览器会阻塞显示直到样式表下载完毕,因此我们需要把样式表放在 HEAD部分 把样式表移到HEAD部分可以提高界面加载速度
我们需尽量把它们放在页面的底部,这样一方面能顺序显示,另方面可达到最大的并行下载
CSS 表达式是功能强大的(同时也是危险的)用于动态设置CSS属性的方式
在现实世界中,使用外部文件会加快页面显示速度,因为外部文件会被浏览器缓存
DNS用于映射主机名和IP地址,一般一次解析需要 20~120 毫秒 把内容分布到至少2 个,最多4个不同的主机名上
最小化JavaScript代码指在JS代码中删除不必要的字符,从而降低下载时间
重定向功能是通过301和302这两个HTTP状态码完成的 在 Apache 下,可以通过Alias,mod_rewrite或 DirectorySlash 等方式来解决该问题
在一个页面中包含重复的JS脚本文件会影响性能,即它会建立不必要的HTTP请求和额外的JS执行
ETags 是用于确定浏览器缓存中元素是否与 Web server 中的元素相匹配的机制, 它是比 last-modified date 更灵活的元素验证机制 如果您未用到 ETags 系统提供的灵活的验证机制,最好删除 ETag。删除 ETag会减少 http response 及后续请求的 HTTP 头的大小
性能优化法则同样适用于web 2.0 应用。提高Ajax的性能最重要的方式是使得其response 可缓存
说实话,以上的十四条,有些是我没看懂的,例如Expires Header和配置 ETags,先记录在这里,其实依照我对Web前端开发的理解,也总结出一些优化原则,也可能与上面的有些重复,但可能会更好理解一些
div+css慢的发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159888.html原文链接:https://javaforall.cn