关于网站性能优化准则

news/2024/4/27 22:02:44/文章来源:https://blog.csdn.net/weixin_34129696/article/details/89506500

打算现在开始在博客里写点东西,也能为自己看过的书学过的知识做一个归纳总结。
这几日拜读了Steve Souders的《高性能网站建设指南这本书》,虽然这本书可能已经有些老了,但薄薄的一个小册子里提出的网站性能优化的准则还是非常有价值的。这些规则都有个共同点,就是用很小的工作就能获得很明显的性能提升,性价比极高。废话不多说了,总结一下书里的几点性能优化规则。

首先有一点需要说明的是书中所写的性能黄金法则:只有10%~20%的响应时间花在了下载HTML文档上,其余的80%~90%时间花在了下载页面的所有组件上。
这也是后面这些性能规则由来的核心。

规则一:减少HTTP请求。这本书的规则顺序是按照其重要性来排名的,减少HTTP请求作为第一个规则,足见其重要性。根据黄金法则,减少组件数量从而减少HTTP请求是最有效的性能优化方式,其中有几项技术值得提一下:

  1. CSS Sprites。应该前端人都比较熟悉了,把图片整合到一个大图里,利用background-position来定位。

  2. data:URL。值得一说把图片变为内联的,减少了图片请求,webpack里图片小于8kb就会转为base64的data:URL。

  3. 合并脚本和CSS。

规则二:使用CDN。这个规则不用多说,分发内容使之更靠近终端用户,减少了请求时间。

规则三:添加Expires头。善用缓存,给长久不变的内容组件设置有效期较久的Expires头。

规则四:压缩组件。利用gzip等内容编码对文档或组件进行压缩,通常能将相应数据量减少70%左右。

规则五:将样式表放在顶部。页面在打开工程中逐步呈现,用户会觉得页面快一些,也让用户在等待过程中有一个良好的反馈。把CSS放在底部的话有可能出现白屏现象。

规则六:将脚本放在底部。页面下载脚本时会阻止其他内容下载与呈现,以防止浏览器的重绘重排。所以把脚本放在页面的底部不会阻止页面内容的呈现,而且页面一些可视化组件可以尽早下载而不被阻塞。

规则七:避免使用CSS表达式。CSS表达式会进行频繁的求值,导致了性能低下。

规则八:使用外部JavaScript和CSS。纯粹而言,内联更快一些,因为满足了规则一的减少HTTP请求,但是这个问题上,一定要考虑缓存带来的性能优化,外部文件很有可能被缓存下来,从而提升了性能。

规则九:减少DNS查找。善用DNS缓存,比如持久连接。

规则十:精简JavaScript。移除不必要的字符空格,我们常见的.min.js就是如此。

规则十一:避免重定向。3xx的响应状态码代表着一股重定向的响应。其中URL结尾缺少斜线造成的重定向需要特别注意,不要因为这一点失误损伤性能。

规则十二:删除重复脚本。

规则十三:配置ETag。说起这个不得不说条件请求If-Modified-Since和If-None-Match,都是用来进行缓存再验证。ETag的问题是服务器构造ETag时,尽管两个文件完全一样,但如果处于不同的服务器的话还是会有不同的ETag,增加了HTTP进行请求下载的次数,这对于后台是服务器集群的网站性能损伤很大。

规则十四:使Ajax可缓存。虽然Ajax是异步的,但也不能让等待响应的时间过长。优化准则的话参见上面的性能准则,其中善用缓存依然是我们重点关注的。

书最后用这些准则分析了美国十大网站,发现有效利用这些规则性能有很大的提升空间,我也看了一下自己实习时候项目,发现可优化的地方非常多。以后的开发过程中要谨记这些准则,让自己产品的用户获得更好的体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_769619.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Chrome for Android Beta 升级,可切换观看桌面版网站

Chrome for Android Beta今天推出了升级,主要改进: 你现在可以切换到桌面版网页观看了,而不是只能看移动版 可在主界面上将书签作为快捷图标添加,好快速进入网页 可选择用哪个应用来打开Chrome浏览器里某种文件格式 Chrome可识别出…

8 个移动产品设计必备网站

本文整理了8个移动设计资源丰富的网站,希望对你的开发设计工作有所帮助。 1. Patterns of Design Patterns是一个分享iOS应用UI的网站,专注于分享iOS应用UI的细节,按照设计元素和iOS常用功能进行分类。 2. iOS UI Patterns iOS UI Pattern…

7月第四周域名主机网站排名:易名中国跃升第三

中国IDC评述网08月01日报道:近日,据国际统计机构Alexa公布的最新数据显示,7月第四周(7月23日-7月29日),国内域名主机网站 周均用户覆盖数排名前三的为中国万网、西部数码和易名中国。其中,万网用…

zabbix lld结合pycurl批量监控网站服务质量

前两天看到博客有监控web的,之前也写过pycurl的监控状态;后面想想web监控咱们何不直接通过zabbix的方式监控;zabbix确实是个万花筒,这个也是我喜欢zabbix的一个原因之一吧;pycurl可以参考我之前写过的:http…

8月第3周国内IT技术类网站排行Top15:CSDN第一

IDC评述网(idcps.com)08月23日报道:根据国际统计机构Alexa公布的最新数据显示,8月第3周(2013-08-12至2013-08-18),国内IT技术类网站排行榜中,CSDN以2290居于榜首,第二位是1700的博客园&#xff…

jQuery css3仿游戏网站右键环形菜单

效果展示 http://hovertree.com/texiao/jquery/86/PC用户右键弹出环形菜单。手机用户扫描二维码:长安可以弹出环形菜单。 转自:http://hovertree.com/h/bjaf/aht9w1n8.htm web前端特效:http://www.cnblogs.com/jihua/p/webfront.html

最全书籍网站合集

2019独角兽企业重金招聘Python工程师标准>>> http://www.360doc.com/userhome/7863900 新华书店免费电子图书馆http://www.feiku.com 飞库 http://www.ssreader.com 超星数字图书馆 http://www.isoshu.com 爱搜书 http://www.abada…

错误配置的交友网站数据库曝光了150万用户的详细信息

据外媒报道, 近日一个新西兰交友网站对一个包含150多万用户信息的数据库进行了安全性保护。这家网站的运营商 C&Z Tech Limited表示, MacKeeper安全研究中心的安全专家在发现这个问题后向该公司发出提醒。 C&Z 在发给 MacKeeper的邮件中表示&…

【SEO】搜索引擎优化的陷阱和作弊

一.认识SEO 【理解】 站内优化是指更改网站内部结构,让网站利于蜘蛛爬取,比如网站内容; 站外优化是指发反向链接,给蜘蛛一个爬取你网站的通道。 其中,反向链接是指网页A 上有一个链接指向网页B,则网页A 上的…

在线读者墙html代码,纯代码为网站添加弹窗广告

额,想了半天不知道如何开篇~~~,还是直接上代码吧。JavaScript 代码var popup document.getElementById(qgg_popup);var popup_box document.querySelector(.qgg_popup_box);var popup_close document.querySelector(.qgg_popup_close);// 窗口加载时弹…

资深站长干货:小说网站从建立到盈利全解析

从2007年做站,刚好十年了。时间过得真快。因为自己是兼职做站,所以一直断断续续,也没有什么大的成绩。做过地方论坛,电影站,股票站,文章站,小说站等,能尝试的都尝试了。学了很多东西…

自学前端的常用网站

导语: 你是否苦恼不知道如何学前端?以下几个网站,让你轻松上手前端编程,少走弯路,省下50%的时间。 1.bilibili 什么,你认为这是一个看搞笑鬼畜,二次元网站?不不不,它也…

购物网站的秒杀计时器实现

秒杀计时器是我们在制作商城秒杀模块经常用到的&#xff0c;下面是用原生js写的一个简易秒杀计时器&#xff0c;小伙伴可以直接拷贝下来使用。 效果图&#xff1a; 源代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset&…

silverlight.net官方网站图片切换源码

下午心血来潮&#xff0c;想看看MS的开发人员是如何做silverlight的&#xff0c;出于学习目的把silverlight.net官方首页的图片轮换通过分析html源代码&#xff0c;下载xap后反编译了一下&#xff0c;分析后的源代码略作修改备份于此&#xff0c;希望对大家学习silverlight有用…

php网站扫描工具,网站目录文件扫描工具dirbuster

网站目录扫描的工具很多&#xff0c;最开始用的wwwscan 、御剑&#xff0c;甚至一些小扫描器自带的比如&#xff0c;椰树、北极熊用来用去&#xff0c;最终你还是会发现&#xff0c;一些个人写的工具真的都是渣渣要么后门&#xff0c;要么崩溃闪退&#xff0c;小白用用还是可以…

解决内部元素onMouseOver/onMouseOut事件冒泡触发父元素的相应事件

前阵子为BS项目模板做了一个左侧滑动信息栏&#xff0c;效果类似于windows状态栏的自动隐藏效果&#xff0c;鼠标移进滑出&#xff0c;鼠标移出隐藏&#xff0c;浮动时不占用空间&#xff0c;也可以固定住占一块位置。做的过程中遇到一个问题&#xff0c;鼠标在信息栏内部移动时…

做网站选择虚拟主机好是服务器,做网站选择虚拟主机还是服务器

选择虚拟主机&#xff1f;还是合租服务器&#xff1f;抑或是租用独立服务器&#xff1f;很多站长朋友们有时很迷茫&#xff0c;不知道是选择虚拟主机好&#xff0c;还是合租服务器好&#xff0c;或者是租用独立服务器。首先我们来分析下这三者的优缺点和一些联系&#xff0c;再…

Step by Step WebMatrix网站开发之二:使用WebMatrix(2)

上一篇&#xff0c;从Web库创建了一个电子商务的网站。现在回到WebMatrix&#xff0c;看看它有什么功能。 由图1可以看到&#xff0c;WebMatrix主要有3个区域&#xff0c;顶部Ribbon区域&#xff0c;左边是功能区域&#xff0c;右边是信息或编辑区域。Ribbon区域的工具按钮会根…

学习及工具网站推荐

目录1、视频教学1.1、遇见狂神说的Java全栈课程1.2、B站2、学习文档2.1、现代 JavaScript 教程3、前端框架3.1、开源模块化前端UI框架3.2、渐变背景CSS样式4、编程学习及算法练习4.1、力扣&#xff08;LeetCode&#xff09;4.2、洛谷5、素材及资源5.1、站长素材&#xff08;各种…

腾讯云服务器安装宝塔面板快速配置LNMP/LAMP网站系统

我们在选择购买腾讯云服务器之后&#xff0c;有部分用户肯定是用来建站用途的。毕竟云服务器的性能和功能比虚拟主机优秀很多。腾讯云服务器拥有香港、北京、广州、上海、美国等多个机房&#xff0c;可以安装Linux和Windows系统。对于VPS、服务器初级用户肯定直接安装面板在服务…