热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

近来项目逐步走上正轨,需求趋于平稳,这才想起须要对整站举行机能优化。经由一段时刻的进修,连系如今项目标现实机能状况,发明确切有许多地方能够举行优化。于是就最先了我的前端机能优化之旅

近来项目逐步走上正轨,需求趋于平稳,这才想起须要对整站举行机能优化。经由一段时刻的进修,连系如今项目标现实机能状况,发明确切有许多地方能够举行优化。于是就最先了我的前端机能优化之旅。以下内容仅为个人明白,假如本内容人人以为那里写的不对,望人人指出,供一同议论。

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

机能优化的目标无非是削减用户流量斲丧,提拔用户首屏体验,提拔用户接见速率,让用户专注内容自身。

前端机能优化

  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. 浅谈前端机能优化

    • 第三个题目前端机能优化,心想这不就是我要写的内容嘛,等我写完内容发明,不对,我写的内容不仅仅是解决计划,好包含的其他内容,所以摒弃。

以上内容仅为个人明白,假如本内容人人以为那里写的不对,望人人指出,供一同议论,点击此处更多文章。


推荐阅读
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • Java高并发与多线程(二):线程的实现方式详解
    本文将深入探讨Java中线程的三种主要实现方式,包括继承Thread类、实现Runnable接口和实现Callable接口,并分析它们之间的异同及其应用场景。 ... [详细]
  • RocketMQ在秒杀时的应用
    目录一、RocketMQ是什么二、broker和nameserver2.1Broker2.2NameServer三、MQ在秒杀场景下的应用3.1利用MQ进行异步操作3. ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 原子操作是指在执行过程中不会被中断的操作。本文将探讨Java是如何通过不同的技术手段实现原子操作的,包括CPU层面的总线加锁和缓存行加锁,以及Java层面的锁机制和CAS操作。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文深入解析了JDK 8中HashMap的源代码,重点探讨了put方法的工作机制及其内部参数的设定原理。HashMap允许键和值为null,但键为null的情况只能出现一次,因为null键在内部通过索引0进行存储。文章详细分析了capacity(容量)、size(大小)、loadFactor(加载因子)以及红黑树转换阈值的设定原则,帮助读者更好地理解HashMap的高效实现和性能优化策略。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 本文详细介绍了如何使用OpenSSL自建CA证书的步骤,包括准备工作、生成CA证书、生成服务器待签证书以及证书签名等过程。 ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
  • 深入解析 Synchronized 锁的升级机制及其在并发编程中的应用
    深入解析 Synchronized 锁的升级机制及其在并发编程中的应用 ... [详细]
  • 性能测试中的关键监控指标与深入分析
    在软件性能测试中,关键监控指标的选取至关重要。主要目的包括:1. 评估系统的当前性能,确保其符合预期的性能标准;2. 发现软件性能瓶颈,定位潜在问题;3. 优化系统性能,提高用户体验。通过综合分析这些指标,可以全面了解系统的运行状态,为后续的性能改进提供科学依据。 ... [详细]
  • B站服务器故障影响豆瓣评分?别担心,阿里巴巴架构师分享预防策略与技术方案
    13日晚上,在视频观看高峰时段,B站出现了服务器故障,引发网友在各大平台上的广泛吐槽。这一事件导致了连锁反应,大量用户纷纷涌入A站、豆瓣和晋江等平台,给这些网站带来了突如其来的流量压力。为了防止类似问题的发生,阿里巴巴架构师分享了一系列预防策略和技术方案,包括负载均衡、弹性伸缩和容灾备份等措施,以确保系统的稳定性和可靠性。 ... [详细]
  • 该大学网站采用PHP和MySQL技术,在校内可免费访问某些外部收费资料数据库。为了方便学生校外访问,建议通过学校账号登录实现免费访问。具体方案可包括利用学校服务器作为代理,结合身份验证机制,确保合法用户在校外也能享受免费资源。 ... [详细]
author-avatar
dgsfdg3t4543
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有