JavaScript性能:使网站快速响应

news/2024/9/18 19:55:06 标签: javascript, 开发语言, ecmascript

创建一个快速且响应迅速的网站对于用户满意度和参与度至关重要。本文探讨了 Web 性能的重要性、如何测量它以及优化 JavaScript、HTML、CSS 和多媒体内容的各种技术。

Web 性能

Web 性能的重要性

  • 用户体验:更快的网站可以降低跳出率并提高参与度。
  • 搜索引擎优化:搜索引擎优先考虑更快的网站。
  • 转化率:更快的加载时间可以显着提高销售额和转化率。

例:Amazon 发现,每 100 毫秒的延迟就会使他们的销售额损失 1%。

了解 Web 性能

  • 定义:网站的速度和响应能力,影响向用户交付内容的速度。
  • 关键指标:页面加载时间、交互时间 (TTI) 和首次内容绘制 (FCP)。

例:性能良好的网站可在 2-3 秒内加载,并且用户交互延迟最小。

感知性能

提高感知速度

感知性能:用户对网站的感觉有多快。

  • 延迟加载:仅在需要时加载图像和其他资源。
  • 骨架屏幕:在加载内容时显示占位符。

例:对图像实施延迟加载可以减少初始加载时间,使网站感觉更快。

衡量性能

工具和指标

  • 性能工具:Google Lighthouse、WebPageTest、Chrome DevTools。
  • 要跟踪的关键指标:FCP、TTI 和最大内容绘制 (LCP)。

例:使用 Google Lighthouse 审核网站可提供包含可操作见解的全面性能报告。

多媒体:图像

优化图像

  • 压缩:在不损失质量的情况下减小文件大小。
  • 响应式图像:根据设备提供不同的图像大小。
  • 格式:使用 WebP 等现代格式以获得更好的压缩效果。

例:在 HTML 中使用 srcset 和 sizes 属性来提供响应式图像:

<img src="image.jpg" srcset="image-320w.jpg 320w, image-480w.jpg 480w" sizes="(max-width: 600px) 480px, 800px" alt="Sample Image">

多媒体:视频

优化视频

  • 格式:使用高效的视频格式,如 MP4 或 WebM。
  • 流:实施自适应流式处理以根据带宽调整质量。
  • 延迟加载:仅当视频进入视区时,才加载视频。

例:使用延迟加载嵌入视频:

<video width="600" controls>
  <source src="movie.mp4" type="video/mp4">
  Your browser does not support the video tag.
</video>

JavaScript 性能优化 

加快 JavaScript 速度的技术

  • 压缩:通过删除空格和注释来减小文件大小。
  • 代码拆分:将代码拆分为较小的块,以便仅加载所需的代码块。
  • 防抖和节流:优化事件处理以减少不必要的函数调用。

例:使用像 Webpack 这样的打包器来拆分 JavaScript 文件:

javascript">// webpack.config.js
module.exports = {
  entry: {
    app: './src/index.js',
  },
  output: {
    filename: '[name].bundle.js',
  },
  optimization: {
    splitChunks: {
      chunks: 'all',
    },
  },
};

HTML 性能优化

优化 HTML 的策略

  • 压缩:通过删除不必要的空格和注释来减小 HTML 文件的大小。
  • 预加载:使用 <link rel=“preload”> 可以更快地加载关键资源。
  • 延迟非必要脚本:对脚本使用 async 或 defer 属性。

例:预加载关键 CSS:

<link rel="preload" href="styles.css" as="style">
<link rel="stylesheet" href="styles.css">

CSS 性能优化

  • 压缩:压缩 CSS 文件以减小大小。
  • 关键 CSS:内联关键 CSS 用于首屏内容。
  • 避免阻塞:异步加载非关键 CSS。

例:内联关键 CSS:

<style>
  /* Critical CSS */
  body {
    margin: 0;
    font-family: Arial, sans-serif;
  }
</style>

Web 性能的业务案例

为什么性能对企业至关重要

  • 收入影响:更快的网站会带来更高的转化率和销售额。
  • 客户满意度:改进的性能提高了用户满意度和保留率。
  • 竞争优势:快速、响应迅速的网站可以使企业从竞争对手中脱颖而出。

例:沃尔玛发现,页面加载时间每缩短 1 秒,他们的转化率就会增加 2%。

其他主题

缓存策略

  • 浏览器缓存:利用浏览器缓存来存储静态资源。
  • 内容交付网络 (CDN):使用 CDN 在地理上分发内容,从而减少延迟。

例:在 HTTP 响应中设置缓存标头:

Cache-Control: max-age=31536000

辅助功能和性能

  • 包容性设计:确保性能优化不会妨碍辅助功能。
  • 渐进式增强:向所有用户提供核心功能,无论设备或浏览器如何。

例:使用 ARIA 角色和属性提高辅助功能:

<button aria-label="Close" onclick="closeDialog()">X</button>

持续性能监控

  • 自动化工具:实施自动化工具和流程,以实现持续的性能监控和优化。
  • 用户反馈:收集和分析用户反馈以识别性能瓶颈。

例:使用 New Relic 等性能监控工具跟踪实时性能指标。

通过专注于这些关键领域,开发人员可以显著提高其网站的性能,从而获得更好的用户体验、提高搜索引擎排名和更高的业务成功率。


http://www.niftyadmin.cn/n/5659169.html

相关文章

df 命令:显示磁盘空间使用情况

一、df 命令简介 ​df​命令用于显示文件系统的磁盘空间利用情况&#xff0c;包括文件系统的总空间、已用空间、可用空间以及挂载点信息。通过df​命令&#xff0c;用户可以快速了解系统中各个文件系统的空间使用情况。 ‍ 二、df 命令参数 df [选项] [目录/驱动器]选项&am…

jsp+sevlet+mysql在线点餐管理系统

jspsevletmysql在线点餐管理系统 一、系统介绍二、功能展示1.主页(客户)2.菜单(客户)3.用户注册(客户)4.用户登陆(客户)5.我的订单(客户)6.餐桌管理(管理员)7.菜系管理(管理员)8.菜品管理(管理员)9.订单管理(管理员) 四、其它1.其他系统实现 一、系统介绍 系统主要功能&#x…

CTFShow-信息搜集

Web1&#xff1a; ​ 题目描述&#xff1a;开发注释未及时删除 。 ​ 打开题目后提示web1:where is flag? ​ ctrlu读取源码。 Web2&#xff1a; ​ 题目描述&#xff1a;js前台拦截 无效操作 ​ 打开题目后显示&#xff1a;无法查看源代码 ​ 右键无法用&#xff0c;…

【时时三省】tessy 单元测试 集成测试 专栏 文章阅读说明

目录 1&#xff0c;关于更新 2&#xff0c;关于文章阅读 3&#xff0c;关于文章分类 1&#xff0c;单元测试 2&#xff0c;集成测试 3&#xff0c;通用便捷操作 4&#xff0c;编译问题集锦 5&#xff0c;需求管理 6&#xff0c;CTE的使用 7&#xff0c;tessy自动化执…

嵌入式软件工程师:科技浪潮中的关键角色

嵌入式软件工程师&#xff1a;科技浪潮中的关键角色 一、嵌入式软件工程师的职业魅力 &#xff08;一&#xff09;市场需求旺盛 嵌入式软件工程师在当今科技领域中扮演着至关重要的角色。随着智能化时代的到来&#xff0c;嵌入式系统在各个行业的应用越来越广泛&#xff0c;市…

Numpy 数组拼接与拆分函数详解

数组拼接 concatenate() concatenate()函数可以让数组按指定维度进行拼接&#xff0c;以下的例子中都使用矩阵进行演示 concatenate的参数一般有两个&#xff0c;第一个为包含需要进行拼接的矩阵列表或矩阵元组&#xff0c;第二个参数为axis&#xff0c;为0则沿行方向进行拼…

《 C++ 修炼全景指南:六 》深入探索 C++ 标准库中的 stack 与 queue 容器适配器

1、引言 1.1、容器适配器的概念与应用 容器适配器&#xff08;Container Adapters&#xff09;是 C 标准库提供的一种特殊容器&#xff0c;它不是一种独立的容器&#xff0c;而是对其他标准容器的封装&#xff0c;用来实现特定的数据结构如栈&#xff08;stack&#xff09;和…

反激电路中TL431光耦反馈参数的计算,环路设计思路

反馈的过程 当副边的输出电压升高时&#xff0c;TL431参考端电压&#xff08;R端&#xff09;电压也会升高&#xff0c;使得TL431的导通量增加&#xff0c;同时光耦内部的发光二极管流过的电流也会增大&#xff0c;进而使得光耦三极管导通量增加&#xff0c;相连的电源IC电压反…