提高网站加载速度的3项黄金守则

news/2024/5/20 6:03:04/文章来源:https://blog.csdn.net/weixin_30300225/article/details/96625576

如何优化网页加载速度是每个前端开发工程师需要了解的,也是前端开发工程师需要具备的基本条件。

优化网站加载速度的原理主要是减少网站文件的大小,减少HTTP请求数。网站文件越小,浏览器加载页面会比较轻松,打开页面的速度也会提升;一个HTTP请求,对页面打开速度造成的延时大概是0.01秒,HTTP的请求数越多,网站打开的速度就会越慢。

那么如何减少网站文件的大小,减少HTTP请求数呢?笔者做前端(重构方向)有2年多了,这里分享3项优化网站加载速度的方法,希望能给有需要的同学以及刚接触前端的初学者带来帮助~

comm on!一起来优化你的网站~

1、优化图片

使用Css Sprites(适用于大流量的网站)

其原理是把网页中一些背景图片整合到一张图片文件中,再利用CSS的"background"的进行背景定位。Css Sprites 最大的好处是减少http请求数,减轻服务器的压力,但使用它是需要付出"降低开发效率,增大维护成本的代价",对流量小的网站带来的好处并不明显,使用它取决网站的流量。

图片合成的工具如:Photoshop,输出样式的工具如:LinrPStoolkit-5、腾讯鬼哥的Css Sprites 样式生成工具;这样做的好处是尽可能减少图片数,将HTTP请求减少到最低,减轻服务器的压力。

示例:合并5张小图

    

合并后的代码

复制代码
.ico-1,.ico-2,.ico-3,.ico-4,.ico-5
{
display:inline-block;
background: url(img/ico.png) no-repeat;
overflow:hidden;
}
.ico-1{width:106px;height:104px;background-position:0 0;}
.ico-2{width:44px;height:104px;background-position:-107px 0;}
.ico-3{width:25px;height:104px;background-position:-152px 0;}
.ico-4{width:44px;height:52px;background-position:-178px 0;}
.ico-5{width:44px;height:51px;background-position:-178px -53px;}
复制代码

合并后的Css sprite图片

给图片减肥
保证图片不失真的前提,适当压缩是图片大小,不仅可以减少用户等待时间,降低公司带宽使用,节约成本。

下面的截图是去年公司的一张轮播广告图,每张图片大小都超过100K左右,在0.5M低带宽下,最大一张等待了7秒,仅仅4张轮播广告图就等了20秒,这种情况用户还会继续等待吗?

查了原因,了解这些图片从设计师给过来后,产品经理直接通过广告系统发布上线,并没有进行压缩图片,导致了用户在低网速情况下等待时间过久,无疑会流失很多用户。

如何压缩jpg图片呢?

这里以广告图为例,通常广告图的内容和色彩是比较丰富的jpg图片,jpg是有损压缩格式,压缩的时候主要注意保证图片清晰为前提,把图像上一些人眼不敏感的细节去掉,来达到减少图片大型的效果。使用最常见图片处理软件PS,存储为web所有格式(快捷键是alt+shift+ctrl+s)可压缩jpg图片。

把图片质量调整为中,品质在45~60之间,可一定幅度减少jpg图片的大小,大家可以试试看。

如何压缩png图片呢?

一淘UX的一丝冰凉,有篇png的秘密,写得非常好,对png图片解释的非常详细,文章最后有png的各种压缩工具,这边我搬过来了,如下:

推荐压缩工具 PngOptimizer (http://psydk.org/PngOptimizer)
推荐压缩工具 Pngout (http://advsys.net/ken/utils.htm)
推荐压缩工具 雅虎: Smush.it(http://www.smushit.com/ysmush.it/)

2.优化HTML页面

删除不必要的空白字符和注释

删除对执行结果无影响的空格、换行、tab和注释

减少DOM元素数量

HTML页面中节点数目越多需要下载更多数据,同时也意味着JavaScript遍历DOM的效率越慢,减少不必要的标签嵌套可提升页面性能。

使用连接式link缓存CSS和JS文件

使用外部连接式link,加载CSS和JS文件,浏览器第一次访问页面后缓存他们,以后调用他们拥有更快的页面加载速度。
内置在HTML页面中的CSS和JS,会在每次请求中随HTML文档重新下载,这虽然减少了HTTP请求的次数,却增加了HTML文档的大小。从另一方面来说,如果外部文件中的CSS和JS被浏览器缓存,在没有增加HTTP请求次数的同时可以减少HTML文档的大小。

<link href="global.css?v=20130219" rel="stylesheet" type="text/css" />

大型网站主页内置CSS和JS

比较适合使用内置代码的例外就是大型网站的主页,主页在一次打开中拥有较少(可能只有一次)的浏览量,采用了减少HTTP请求的方法,把CSS写到HTML文件里,而不采用外部调用的方法,也可以防止css没有加载完毕出现页面乱的现象,内置CSS和JS对于终端用户来说会加快响应时间,用户体验好。 

复制代码
<style type="text/css">
......
</style><script type="text/javascript">
......
</script>
复制代码

减少css、js文件数目

CSS和JS文件可以合并的最好合并

复制代码
例如
<link rel="stylesheet" type="text/css" href="reset.css" />
<link rel="stylesheet" type="text/css" href="common.css" />
<link rel="stylesheet" type="text/css" href="index.css" />
<link rel="stylesheet" type="text/css" href="page.css" />
<script type="text/javascript" src="page.js"></script>
<script type="text/javascript" src="v4.js"></script>
复制代码

1.reset.css和common.css是公用的样式,可合并为global.css

2.index.css和page.css为私有的样式,可合并为index.css

3.page.js和v4.js为私有脚本,可以合并为index.js

合并后:

<link rel="stylesheet" type="text/css" href="global.css" />
<link rel="stylesheet" type="text/css" href="index.css" />
<script  type="text/javascript" src="index.js"></script>

这样一来可以减少3个http请求

css放页头head标签中,js文件放页面底部

用户没有太多的耐心等待页面加载,我们可利用网页先展现给用户,后加载功能原则

1.优先加载css:

浏览器渲染HTML的顺序是从上到下,下载和渲染是同时进行的,在载入HTML元素之前,先加载css,可以避免HTML出现无样式状态,先将网页展现给用户

2.最后加载js:

如果js文件放到页面顶部,浏览器加载网页,加载js时,还没有加载HTML代码,网页显示为空白,脚本阻塞了HTML的加载,也可能会出现js捕捉不到操作的节点,就会报错

网址后加反斜杠

有些网址,比如"https://www.tenpay.com/v2/mapp",当服务器收到这样一个地址请求的时候,它需要花费时间去确定这个地址的文件类型。在网址后多加一个斜杠,让其变成"https://www.tenpay.com/v2/mapp/",这样服务器就能一目了然地知道要访问该目录下的index文件,从而节省了加载时间。

img、table、iframe标签标明高度和宽度

例如网页上添加图片时,标明它们的高度和宽度,也就是height和width参数。如果浏览器没有找到这两个参数,它需要一边下载图片一边计算大小,如果图片很多,浏览器需要不断地调整页面。这不但影响速度,也影响浏览体验。
下面是一个比较友好的图片代码:
<img width="120" height="40" src="logo.gif" alt="logo" />
当浏览器知道了高度和宽度参数后,即使图片暂时无法显示,页面上也会腾出图片的空位,然后继续加载后面的内容,从而加载时间快了,浏览体验也更好了。

3、优化CSS文件

不要在ID或者class选择器前使用标签名
一般写法:span.ico-peun
更好写法:.ico-peun
尽量少使用层级关系,使用长命名
一般写法:.main .line span.txt{...}
更好写法:.main-line-txt{...}

为什么要这样写呢?浏览器CSS匹配不是从左到右进行查找,而是从右到左进行查找。比如.main .line .txt{...},浏览器的查找顺序如下:先查找html中所有class='txt'的span元素,找到后,再查找其父辈元素中是否有class="line"的元素,再判断.line的父元素中是否有class="mian"元素,如果都存在则匹配上。 浏览器从右到左进行查找的好处是为了尽早过滤掉一些无关的样式规则和元素。

长命名的写法有2个好处:一来可以减少代码量,二来可以提高选择器解析css代码的速度。

使用class代替层级关系
一般写法:.main ul li a{display:block;}
更好写法:.block{display:block;}

CSS代码简写

简写的好处是代码简练,提高开发速度,并减少多余的代码量

复制代码
.test{margin-top: 10px;margin-right: 20px;margin-bottom: 10px;margin-left: 20px;
}
简化为:
.test{margin: 10px 20px 10px 20px;}
复制代码

CSS代码一行式编码风格,去掉不需要的空白字符(空格、换行、tab缩进)

一行式的好处是有效减少css文件的行数和空白符,最终减少文件的大小

复制代码
.test{width:50px;height:100px;color:#000000;
}
简化为:
.test{width:50px;height:100px;color:#000000;}
复制代码

压缩css,最有效的减少文件大小(去除注释、空白字符)

如把css文件复制成为2份,把其中一份保留原稿,令一份压缩并添加min后缀,并把压缩这份用于线上使用

常见压缩工具:YUICompressor,淘宝封装的css和js压缩工具TBCompressor,站长工具等,都适合css和js文件的压缩CSS、JS文件,去掉不需要的空白字符(空格、换行、tab缩进)缩减HTML文档大小。

转载于:https://www.cnblogs.com/super86/p/4201512.html

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

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

相关文章

wordpress如何让百度快速收录_网站文章如何快速被收录?百度快速收录功能可以试一下...

摘要&#xff1a;近日百度站长管理平台推出了快速收录功能&#xff0c;据了解该功能目前仅对部分优质的站点开放&#xff0c;但是开通熊掌号的站点也可以直接继承过来的。下面让我们一起来了看看吧。一、百度快速收录上线2020年5月13日下午&#xff0c;百度站长管理平台上线了快…

java开发流程图_开发者常用的一些工具类网站

本文主要收集和记录一些平时开发工作中经常用到的工具类网站。当然&#xff0c;GitHub、StackOverflow 之类知名度太高的就不赘述了。ProcessOnProcessOn - 免费在线作图&#xff0c;思维导图&#xff0c;流程图&#xff0c;实时协作​www.processon.com在线画图&#xff0c;思…

网站源码(二)

开始失业了,要人的朋友关照一下.对上次源码的完善.请大家在这下载最新版本源码.欢迎来信一起交流,一起进步.这是我的写的一些作品,是一个企业网站的后台和前台,主要实现了新闻发布和人才招聘,还有公司简介等,本是公司改版时用的,由于没能用上,现在提供全部源码,希望对想更版公司…

关于网页*静态化*及SEO问题的一些补充(转)

http://www.cnblogs.com/JeffreyZhao/archive/2009/07/06/more-on-page-statilization-and-seo.html  前一篇讨论“静态页”的文章反响不错&#xff0c;不少朋友发表了自己的看法&#xff0c;也给老赵更多的想法。虽然也在前一篇文章后面回复了不少内容&#xff0c;但是就以往…

非常酷的国外网站导航设计案例欣赏

作为网站最重要的组成部分之一&#xff0c;导航能够引导用户浏览网站中的更多内容。优秀的导航应该和网页内容完美的融合在一起&#xff0c;因此设计前需要设仔细分析网页结构。这篇文章收集了20个漂亮的网站导航设计案例&#xff0c;希望这些优秀的实例能给你带来灵感。 New C…

40个优秀的单页网站设计范例(下篇)

单页网站是指只有一个页面的网站形式&#xff0c;有些人非常喜欢这种网站。不过&#xff0c;并不是每个网站都适合做成单页&#xff0c;一般都是内容比较少而且将来内容也不怎么增加的情况才适合这样做。如果你打算做一个这样的网站&#xff0c;那么本文收集的20个漂亮的单页网…

10 个用来下载免费图标的网站

Icon Archive Icon stick Icon Factory Icon Finder Find icons Icon Shock Icons Pedia Icon Pot Icon Dock Best Free icons 转载于:https://www.cnblogs.com/chu888chu888/archive/2011/12/20/2294540.html

电子商务网站的用户分析

电子商务网站的用户分析 当用户在电子商务网站上有了购买行为之后&#xff0c;就从潜在客户变成了网站的价值客户。电子商务网站一般都会将用户的交易信息&#xff0c;包括购买时间、购买商品、购买数量、支付金额等信息保存在自己的数据库里面&#xff0c;所以对于这些用户&am…

域名解析 cdn网站_前端必会:CDN加速原理

作者: Kandyhttps://www.jianshu.com/p/1dae6e1680ff一、什么是 CDNCDN的全称是(Content Delivery Network)&#xff0c;即内容分发网络。其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层&#xff0c;将网站的内容发布到最接近用户的网络”边缘“的节点&#xff0c;使…

宝塔mysql cpu 100_宝塔面板解决网站云服务器偶尔出现CPU100%的情况

不知道大家有没有遇到一个问题&#xff0c;就是服务器CPU经常会跳100%&#xff0c;但是网站却其实却没什么访问量&#xff0c;查看服务器带宽也是正常的&#xff0c;那为何CPU却偶尔跳100%呢&#xff1f;对于这个问题主机吧上周也遇到过类似的问题&#xff0c;查了挺久&#xf…

取代cookie的网站追踪技术:帆布指纹识别

【前言】 一般情况下&#xff0c;网站或者广告联盟都会非常想要一种技术方式可以在网络上精确定位到每一个个体&#xff0c;这样可以通过收集这些个体的数据&#xff0c;通过分析后更加精准的去推送广告&#xff08;精准化营销&#xff09;或其他有针对性的一些活动。Cookie技…

“万能数据库查询分析器”中英文4.01 已提交至国内几大软件下载网站,3日内就会发布,敬请期待...

“万能数据库查询分析器”&#xff08;中文版本《DB 查询分析器》、英文版本《DB Query Analyzer》&#xff09;拥有强大的功能、友好的操作界面、良好的操作性、跨越数据库平台。 中英文最新的4.01版本已提交给国内各大软件下载网站来升级&#xff0c;估计3天内就可以完成更…

55+手绘网站设计 – 构建极具创新效果的网站

手绘网页设计无疑是创建个性化页面并获取众多关注的好办法。 尽管手绘在网页设计中不是最热门的&#xff0c;但却是很常见的方法。如你在以下的实例中所见&#xff0c;将手绘融入网页设计有很多种方法&#xff0c;都看上去很棒&#xff01;正如其他任何艺术形式一样&#xff0c…

IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题

IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题 原文:IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题你是否遇到过当使用一个涉及到Cookie操作的网站或者管理系统时&#xff0c;IE 6、7、8、9下都跑的好好的&#xff0c;唯独到了IE10、11这些高…

【转】详解抓取网站,模拟登陆,抓取动态网页的原理和实现(Python,C#等)...

转自&#xff1a;http://www.crifan.com/files/doc/docbook/web_scrape_emulate_login/release/html/web_scrape_emulate_login.html摘要本文主要介绍了抓取网站&#xff0c;模拟登陆&#xff0c;抓取动态网页相关的逻辑&#xff0c;原理和如何实现。主要包括&#xff1a; 抓取…

程序员必备-13个网站小工具

1. MikuTools 链接 2. 在线工具-程序员工具 链接 3. 一个工具箱 链接 4. ToolFk 在线程序员开发工具 5. Smallpdf 链接 6. 兔二工具 链接 7. 在线电子书转换器 链接 8. 智奇搜书 链接 9. 图片背景消除&#xff08;快速抠图必备&#xff09; 链接 10. topbook 链接 奇…

程序员必备-网站推荐

软件下载类 1. 果核剥壳 果核剥壳&#xff0c;还原软件的本质。信息爆炸的时代&#xff0c;纷杂的互联网&#xff0c;我要做的就是把绿化的&#xff0c;破解的绿色软件分享给大家。 经过本站改版&#xff0c;全新出发&#xff0c;加入更多移动端的资源分享。 网站所有的资源都…

Asp.net mvc + Javascript 灵活的网站广告解决方案

以下是我这几天这个项目中添加的广告功能&#xff0c;算是新的尝试&#xff0c;&#xff0c;由于上班缘故就没那么清楚了&#xff0c;仅贴下代码&#xff0c;呵呵代码质量不是很好&#xff0c;应付完工的,希望多提意见!广告相关信息如图:此采用的分页使用了我上篇随笔的分页控件…

优化Meta讨好搜索引擎 更好的提升网站排名

网页代码中的Meta标签在SEO&#xff08;搜索赢取优化&#xff09;中有着举足轻重的地位&#xff0c;如果在Meta标签上进行了适合搜索引擎的撰写方式&#xff0c;可在很大程度地提升网站的排名&#xff0c;同时也有利于站点内容的收录&#xff0c;所以给每个网页加上Meta值就成为…

Silverlight又有新网站推出啦

在此Silverlight网站中http://www.completit.com&#xff0c;提供了许多Silverlight网站链接&#xff0c;用于演示&#xff0c;相当漂亮 每页都有网站转载于:https://www.cnblogs.com/salam/archive/2010/08/11/1797334.html