浅谈网站性能之前端性能优化

news/2024/4/27 8:58:33/文章来源:https://blog.csdn.net/weixin_33728708/article/details/89290587

最近项目慢慢走上正轨,需求趋于平稳,这才想起需要对整站进行性能优化。经过一段时间的学习,结合现在项目的实际性能情况,发现确实有许多地方可以进行优化。于是就开始了我的前端性能优化之旅。以下内容仅为个人理解,如果本内容大家觉得哪里写的不对,望大家指出,供一起讨论。

浅谈网站性能之前端性能优化

性能优化的目的无非是减少用户流量消耗,提升用户首屏体验,提升用户访问速度,让用户专注内容本身。

前端性能优化

  1. 减少 HTTP 请求数量

    • 基本原理:在浏览器与服务器进行通信时,主要是通过 HTTP 进行通信。浏览器与服务器需要经过三次握手,每次握手需要花费大量时间。而且不同浏览器对资源文件并发请求数量有限(不同浏览器允许并发数),一旦 HTTP 请求数量达到一定数量,资源请求就存在等待状态,这是很致命的,因此减少 HTTP 的请求数量可以很大程度上对网站性能进行优化。

      1. CSS Sprites:国内俗称 CSS 精灵,这是将多张图片合并成一张图片达到减少 HTTP 请求的一种解决方案,可以通过 CSS background 属性来访问图片内容。这种方案同时还可以减少图片总字节数,节省命名词汇量(由命名多张图片文件变成一张,哈哈哈)。

      2. 合并 CSS 和 JS 文件:现在前端有很多工程化打包工具,如:grunt、gulp、webpack等。为了减少 HTTP 请求数量,可以通过这些工具再发布前将多个 CSS 或者 多个 JS 合并成一个文件。

      3. 采用 lazyLoad:俗称懒加载,可以控制网页上的内容在一开始无需加载,不需要发请求,等到用户操作真正需要的时候立即加载出内容。这样就控制了网页资源一次性请求数量。

  2. 控制资源文件加载优先级

    • 基本原理:说到这里就需要知道浏览器加载 HTML 内容的原理,浏览器在加载 HTML 内容时,是将 HTML 内容从上至下依次解析,解析到 link 或者 script 标签就会加载 href 或者 src 对应链接内容,为了第一时间展示页面给用户,就需要将 CSS 提前加载,不要受 JS 加载影响。

      1. 遵循原则:主要文件放在 head 内部,次要文件放在 body 底部。一般情况下都是 CSS 在头部,JS 在底部。

  3. 利用浏览器缓存

    • 基本原理:浏览器缓存分强缓存和协商缓存,他们是将网络资源存储在本地,等待下次请求该资源时,如果命中就不需要到服务器重新请求该资源,直接在本地读取该资源。

      1. 强缓存:在 web 服务器返回的响应中添加 Expires 和 Cache-Control Header。

      2. 协商缓存:通过【Last-Modified,If-Modified-Since】和【ETag、If-None-Match】这两对 Header 分别管理。

  4. 使用 CDN

    • 基本原理:CDN的全称是Content Delivery Network,即内容分发网络。

  5. 减少重排(Reflow)

    • 基本原理:重排是 DOM 的变化影响到了元素的几何属性(宽和高),浏览器会重新计算元素的几何属性,会使渲染树中受到影响的部分失效,浏览器会验证 DOM 树上的所有其它结点的 visibility 属性,这也是 Reflow 低效的原因。如果 Reflow 的过于频繁,CPU 使用率就会急剧上升。

      1. 减少 Reflow,如果需要在 DOM 操作时添加样式,尽量使用 增加 class 属性,而不是通过 style 操作样式。

  6. 减少 DOM 操作

  7. 图标使用 IconFont 替换

花絮

在开始提笔写这篇博客前就遇到了一个很棘手的问题,这篇博客标题叫什么,思考了一会,我心里冒出了三个答案:

  1. 浅谈网站性能优化

    • 第一个标题网站性能优化,一看标题可以理解为是讲网站性能,而且是对网站进行优化,描述的是一种解决方案,然而网站性能包括的太多了,超出了我的知识范畴,所以放弃。

  2. 浅谈网站性能之前端性能优化

    • 第二个标题正适我怀,答题概括了我本期博客内容,既有性能介绍,又有前端性能优化解决方案。

  3. 浅谈前端性能优化

    • 第三个标题前端性能优化,心想这不就是我要写的内容嘛,等我写完内容发现,不对,我写的内容不仅仅是解决方案,好包括的其他内容,所以放弃。

以上内容仅为个人理解,如果本内容大家觉得哪里写的不对,望大家指出,供一起讨论,点击此处更多文章。

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

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

相关文章

【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器(转)

【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器(转) 出处:http://edisonchou.cnblogs.com/ 一、反向代理:Web服务器的“经纪人” 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连…

分享几个小工具网站

Firefox Sendhttps://send.firefox.com/ Firefox Send 是一个简单、私密在线文件分享服务,单个文件路人最大1G,注册登录火狐的话最大2.5G文件(可能有部分浏览器不支持,未测试)可设置密码、下载次数、过期时间等&#x…

阿里云APP上线“备案刷脸核验”功能  网站备案时间大幅缩短

建过网站的人都知道,网站备案真实性核验环节花费的时间比较长,为贯彻国务院“放管服”改革要求,工业和信息化部及各省通信管理局自2016年起指导境内接入服务企业开展了APP备案试点工作,旨在满足网站备案真实性的前提下&#xff0c…

《网站设计 开发 维护 推广 从入门到精通》—— 1.5 文字与图像版式设计

本节书摘来异步社区《网站设计 开发 维护 推广 从入门到精通》一书中的第1章,第1.5节,作者:何新起 ,娄彦杰,更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.5 文字与图像版式设计 文本是人类重要的信息载体和交流工具&…

idea在目录中前添加目录_WP网站模板开发中,怎样给分类目录添加SEO标题和关键词?...

作为一个wordpress网站的站长,都希望自己的网站在百度或谷歌搜索引擎上的排名好。这时,我们除了要做好wordpress网站的内容之外,还要对wordpress网站做好相关的SEO优化。在前面的章节中,我们介绍了wordpress网站首页的SEO优化&…

甘肃计算机二级打印准考证入口,2016年9月甘肃计算机二级打印准考证网站入口,计算机等级考试时间查询...

传播解读与2016年9月甘肃计算机二级打印准考证网站入口,计算机等级考试时间查询-相关精选《2016年9月甘肃计算机三级打印准考证网站入口,计算机等级考试时间查询》是由传播招生网为你搜集整理,希望对你有所帮助。如有变动,请以官方网站发布为主。本文内容…

《大型网站技术架构》-读书笔记六:可扩展架构

一、构建可扩展的网站架构 1、如何分解系统的各个模块,如何定义各个模块的接口,如何复用组合不同的模块构造成一个完整的系统, 是软件设计中最具挑战的部分。 2、设计完整可扩展架构的核心思想是模块化,并在此基础上,降…

Web网站的几个并发量级

2019独角兽企业重金招聘Python工程师标准>>> 评价一个网站的“大小”,处于视角的不同,有很多种衡量的方法,类似文章数,页面数之类的数据非常明显,也没有什么可以争议的。但对于并发来说,争议非常…

ASP.NET MVC部署网站到IIS,只列出网站目录

解决办法: 1.重启IIS 打开CMD运行以下代码: ps:根据发布网站的的.NET Framework版本进入对应的目录 4.0版本 C:\Windows\Microsoft.NET\Framework\v4.0.30319 3.5版本 C:\Windows\Microsoft.NET\Framework\v3.5 2.0版本 C:\Windows\Microsoft.NET\Framework\v2.0.…

大型网站架构_Index

2019独角兽企业重金招聘Python工程师标准>>> 大型分布式网站架构 大型分布式网站架构技术总结 大型网站架构系列:电商网站架构案例 大型网站架构系列:负载均衡详解 大型网站架构系列:分布式消息队列 一步步带你,如…

Tomcat实现session保持的三种方式、使用msm方式搭建jsp网站

Tomcat简单的来说类似于php的功能,主要实现java程序的编译,最后呈现给用户的是html格式的代码,使用用户可以在浏览器中访问。Tomcat是Java语言研发的,所以依赖于java的虚拟机(jvm)。 一、使用前端调度器实现…

基于vue-element-admin框架改造——支持第三方iframe网站

2019独角兽企业重金招聘Python工程师标准>>> 先来看个效果图 码云地址:https://gitee.com/smallweigit/vue-element-admin.git 例:http://localhost:9527/#/iframe/urlPath?srchttps://www.baidu.com (访问百度) 格式:http://localhost:9527…

什么是最好的网站学习如何使用Linux系统?

2019独角兽企业重金招聘Python工程师标准>>> 其实不是很难使用Linux,由于有关系统的大量技术信息加上现在网上的信息鱼龙混杂,各种信息让我们分不清是真是假,您可能会被愚弄,但毕竟真的不是那么困难。为了给你一个开始…

开源在线excel编辑器_推荐3款爽到爆的在线网站

今天给大家推荐的是三款比较厉害的在线网站,可以用一个顶10个形容它们,相对来说应该算是比较冷门的网站,至少小编之前还真不知道,但不要怀疑它们的实力,不信?一起来看看!一、Fosshub网址&#x…

宝塔面板ab模板建站_干货分享丨零基础,最详细的wordpress建站流程

首先,我们要知道,一个网站的构成共有三要素,分别是:云服务器(主机),域名,程序(源码)。准备工作购买云服务器(或主机)订购域名(推荐腾讯云,阿里云)网站“内核”准备(Emlog主题框架,主…

php mysql 雷风积分游戏建站系统_雷风影视系统(LFCMS) php版 v3.8.9

LFCMS是一款采用PHP基于THINKPHP3.2.3框架开发,适合各类视频、影视网站的影视内容管理程序。具有良好的用户体验,适合美工人员快速建立站点,您也可以根据您的需要进行应用扩展来达到更加强大功能。 您可以在遵循 协议 的情况下完全免费的使用我们的程序。…

大型网站架构之分布式消息队列

大型网站架构之分布式消息队列以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。本次分享大纲消息队列概述消息队列应用场景消息中间件示例JMS消息服务&#xff…

阿里巴巴的页面不能被抓取吗_网站seo优化吸引蜘蛛来抓取的几种方式

目前常用的链接有锚文本链接、超链接、纯文本链接和图像链接。如何被爬行器爬行是一个自动提取网页的程序,如百度蜘蛛。要使您的网站包含更多的网页,您必须首先让爬虫程序对网页进行爬行。如果你的网站页面定期更新,爬虫会更频繁地访问页面&a…

h5网站模板_拥有这些设计网站,不用PS、AI,小白也能成为设计师

大家都知道 PS、AI 等是设计师的专业工具,但随着社会的快速发展,新媒体行业、微商、电商的从业者,学习并精通此类软件,没有这么多时间成本。这次,就给大家介绍一下,国内好用的几个设计网站。现在小编用得比…

中型企业网站选云主机还是服务器,新企业网站选择共享主机还是云主机?

原标题:新企业网站选择共享主机还是云主机?随着企业上网的需求越来越大,越来越多的企业主开始为自己的企业建立网站。然而,每个新网站要想在网络世界中崭露头角,首要条件是强大的主机方案。浏览并为网站选择虚拟主机平…