3. 推迟非关键 JavaScript

推迟非关键 JavaScript 允许浏览器首先加载 HTML 和 CSS,从而缩短初始页面加载时间。使用 defer 属性来实现这一点。

例子:

4. 代码分割和延迟加载

将 JavaScript 代码分割成更小的块并仅在需要时加载它们可以显着减少初始加载时间。这可以使用 Webpack 等模块捆绑器来完成。

Webpack 示例:

// Dynamic import of moduleAimport(/* webpackChunkName: \\\"moduleA\\\" */ \\'./moduleA\\').then(module => {    module.default();});

5. 优化并减少依赖

检查并优化您的依赖项。删除未使用的库并考虑用较轻的替代方案替换重型库。

例子:
将 moment.js (65 KB) 替换为 date-fns (12 KB) 以执行日期操作任务。

6. 实现 Tree Shaking

Tree Shaking 是一种从 JavaScript 包中消除死代码的技术。它通常与 Webpack 和 Rollup 等模块捆绑器一起使用。

module.exports = {    mode: \\'production\\',    optimization: {        usedExports: true,    },};

7.使用内容分发网络(CDN)

从 CDN 提供 JavaScript 文件可以通过从更靠近用户的位置传送文件来减少延迟。 CDN 还提供额外的好处,例如改进的缓存。

例子:

8. 缓存 JavaScript 文件

利用浏览器缓存 JavaScript 文件可以显着减少回访用户的加载时间。您可以在服务器上设置缓存标头以指示浏览器缓存您的 JavaScript 文件。

设置缓存控制标头:

要设置 Cache-Control 标头,您需要配置 Web 服务器。以下是不同网络服务器的示例:

阿帕奇:
在您的 .htaccess 文件中:

  ExpiresActive On  ExpiresByType application/javascript \\\"access plus 1 year\\\"      Header set Cache-Control \\\"public, max-age=31536000\\\"  

Nginx:
在您的 nginx.conf 或服务器块中:

location ~* \\\\.js$ {  expires 1y;  add_header Cache-Control \\\"public, max-age=31536000\\\";}

Express (Node.js):
在您的服务器配置中:

const express = require(\\'express\\');const app = express();app.use(express.static(\\'public\\', {  maxAge: \\'1y\\'}));app.listen(3000, () => {  console.log(\\'Server running on port 3000\\');});

9. 优化图像和媒体文件

确保图像和媒体文件经过优化且大小适当,以减少 Web 应用程序的总体负载。

例子:
将响应式图像与 srcset 一起使用:

\\\"Example\\\"

10.监控和分析性能

使用 Lighthouse、WebPageTest 和浏览器开发人员工具等工具定期监控和分析 Web 应用程序的性能。这可以帮助您识别并解决性能瓶颈。

优化 JavaScript 加载时间是一个持续的过程,需要定期监控和调整。通过实施这些经过验证的策略,您可以显着提高 Web 应用程序的性能,为您的用户提供更快、更愉快的体验。

请记住,快速加载的网站不仅可以增强用户体验,还可以对您的 SEO 排名和转化率产生积极影响。随时了解最新趋势和工具,让您的 JavaScript 性能保持最佳状态。

","image":"http://www.luping.net/uploads/20240729/172225621266a78b546c5ad.jpg","datePublished":"2024-07-29T20:30:11+08:00","dateModified":"2024-07-29T20:30:11+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 现代 Web 开发中优化 JavaScript 加载时间的行之有效的策略

现代 Web 开发中优化 JavaScript 加载时间的行之有效的策略

发布于2024-07-29
浏览:854

Proven Strategies to Optimize JavaScript Load Times in Modern Web Development

1. 缩小和压缩 JavaScript 文件

缩小 JavaScript 文件会删除不必要的字符,例如空格、注释和换行符,而不会改变其功能。这可以减少文件大小并缩短加载时间。

例子:
缩小之前:

function greetUser(name) {
    console.log('Hello, '   name   '!');
}

缩小后:

function greetUser(name){console.log("Hello, " name "!")}

缩小工具:

  • UglifyJS
  • 简洁
  • Google 闭包编译器

2.使用异步加载

异步加载 JavaScript 文件可确保脚本的加载不会阻止页面的渲染。这可以使用“script”标签中的 async 属性来实现。

例子:

 

3. 推迟非关键 JavaScript

推迟非关键 JavaScript 允许浏览器首先加载 HTML 和 CSS,从而缩短初始页面加载时间。使用 defer 属性来实现这一点。

例子:


4. 代码分割和延迟加载

将 JavaScript 代码分割成更小的块并仅在需要时加载它们可以显着减少初始加载时间。这可以使用 Webpack 等模块捆绑器来完成。

Webpack 示例:

// Dynamic import of moduleA
import(/* webpackChunkName: "moduleA" */ './moduleA').then(module => {
    module.default();
});

5. 优化并减少依赖

检查并优化您的依赖项。删除未使用的库并考虑用较轻的替代方案替换重型库。

例子:
将 moment.js (65 KB) 替换为 date-fns (12 KB) 以执行日期操作任务。

6. 实现 Tree Shaking

Tree Shaking 是一种从 JavaScript 包中消除死代码的技术。它通常与 Webpack 和 Rollup 等模块捆绑器一起使用。

module.exports = {
    mode: 'production',
    optimization: {
        usedExports: true,
    },
};

7.使用内容分发网络(CDN)

从 CDN 提供 JavaScript 文件可以通过从更靠近用户的位置传送文件来减少延迟。 CDN 还提供额外的好处,例如改进的缓存。

例子:


8. 缓存 JavaScript 文件

利用浏览器缓存 JavaScript 文件可以显着减少回访用户的加载时间。您可以在服务器上设置缓存标头以指示浏览器缓存您的 JavaScript 文件。

设置缓存控制标头:

要设置 Cache-Control 标头,您需要配置 Web 服务器。以下是不同网络服务器的示例:

阿帕奇:
在您的 .htaccess 文件中:


  ExpiresActive On
  ExpiresByType application/javascript "access plus 1 year"


  
    Header set Cache-Control "public, max-age=31536000"
  


Nginx:
在您的 nginx.conf 或服务器块中:

location ~* \.js$ {
  expires 1y;
  add_header Cache-Control "public, max-age=31536000";
}

Express (Node.js):
在您的服务器配置中:

const express = require('express');
const app = express();

app.use(express.static('public', {
  maxAge: '1y'
}));

app.listen(3000, () => {
  console.log('Server running on port 3000');
});

9. 优化图像和媒体文件

确保图像和媒体文件经过优化且大小适当,以减少 Web 应用程序的总体负载。

例子:
将响应式图像与 srcset 一起使用:

Example

10.监控和分析性能

使用 Lighthouse、WebPageTest 和浏览器开发人员工具等工具定期监控和分析 Web 应用程序的性能。这可以帮助您识别并解决性能瓶颈。

优化 JavaScript 加载时间是一个持续的过程,需要定期监控和调整。通过实施这些经过验证的策略,您可以显着提高 Web 应用程序的性能,为您的用户提供更快、更愉快的体验。

请记住,快速加载的网站不仅可以增强用户体验,还可以对您的 SEO 排名和转化率产生积极影响。随时了解最新趋势和工具,让您的 JavaScript 性能保持最佳状态。

版本声明 本文转载于:https://dev.to/rigalpatel001/proven-strategies-to-optimize-javascript-load-times-in-modern-web-development-2a8k?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何有效地选择熊猫数据框中的列?
    如何有效地选择熊猫数据框中的列?
    在处理数据操作任务时,在Pandas DataFrames 中选择列时,选择特定列的必要条件是必要的。在Pandas中,选择列的各种选项。选项1:使用列名 如果已知列索引,请使用ILOC函数选择它们。请注意,python索引基于零。 df1 = df.iloc [:,0:2]#使用索引0和1 的 ...
    编程 发布于2025-07-12
  • 如何实时捕获和流媒体以进行聊天机器人命令执行?
    如何实时捕获和流媒体以进行聊天机器人命令执行?
    在开发能够执行命令的chatbots的领域中,实时从命令执行实时捕获Stdout,一个常见的需求是能够检索和显示标准输出(stdout)在cath cath cant cant cant cant cant cant cant cant interfaces in Chate cant inter...
    编程 发布于2025-07-12
  • 为什么尽管有效代码,为什么在PHP中捕获输入?
    为什么尽管有效代码,为什么在PHP中捕获输入?
    在php ;?>" method="post">The intention is to capture the input from the text box and display it when the submit button is clicked.但是,输出...
    编程 发布于2025-07-12
  • Java是否允许多种返回类型:仔细研究通用方法?
    Java是否允许多种返回类型:仔细研究通用方法?
    在Java中的多个返回类型:一种误解类型:在Java编程中揭示,在Java编程中,Peculiar方法签名可能会出现,可能会出现,使开发人员陷入困境,使开发人员陷入困境。 getResult(string s); ,其中foo是自定义类。该方法声明似乎拥有两种返回类型:列表和E。但这确实是如此吗...
    编程 发布于2025-07-12
  • 您如何在Laravel Blade模板中定义变量?
    您如何在Laravel Blade模板中定义变量?
    在Laravel Blade模板中使用Elegance 在blade模板中如何分配变量对于存储以后使用的数据至关重要。在使用“ {{}}”分配变量的同时,它可能并不总是最优雅的解决方案。幸运的是,Blade通过@php Directive提供了更优雅的方法: $ old_section =“...
    编程 发布于2025-07-12
  • 大批
    大批
    [2 数组是对象,因此它们在JS中也具有方法。 切片(开始):在新数组中提取部分数组,而无需突变原始数组。 令ARR = ['a','b','c','d','e']; // USECASE:提取直到索引作...
    编程 发布于2025-07-12
  • 如何有效地转换PHP中的时区?
    如何有效地转换PHP中的时区?
    在PHP 利用dateTime对象和functions DateTime对象及其相应的功能别名为时区转换提供方便的方法。例如: //定义用户的时区 date_default_timezone_set('欧洲/伦敦'); //创建DateTime对象 $ dateTime = ne...
    编程 发布于2025-07-12
  • 如何使用不同数量列的联合数据库表?
    如何使用不同数量列的联合数据库表?
    合并列数不同的表 当尝试合并列数不同的数据库表时,可能会遇到挑战。一种直接的方法是在列数较少的表中,为缺失的列追加空值。 例如,考虑两个表,表 A 和表 B,其中表 A 的列数多于表 B。为了合并这些表,同时处理表 B 中缺失的列,请按照以下步骤操作: 确定表 B 中缺失的列,并将它们添加到表的末...
    编程 发布于2025-07-12
  • 如何将PANDAS DataFrame列转换为DateTime格式并按日期过滤?
    如何将PANDAS DataFrame列转换为DateTime格式并按日期过滤?
    Transform Pandas DataFrame Column to DateTime FormatScenario:Data within a Pandas DataFrame often exists in various formats, including strings.使用时间数据时...
    编程 发布于2025-07-12
  • 如何使用FormData()处理多个文件上传?
    如何使用FormData()处理多个文件上传?
    )处理多个文件输入时,通常需要处理多个文件上传时,通常是必要的。 The fd.append("fileToUpload[]", files[x]); method can be used for this purpose, allowing you to send multi...
    编程 发布于2025-07-12
  • HTML格式标签
    HTML格式标签
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    编程 发布于2025-07-12
  • 如何从PHP中的Unicode字符串中有效地产生对URL友好的sl。
    如何从PHP中的Unicode字符串中有效地产生对URL友好的sl。
    为有效的slug生成首先,该函数用指定的分隔符替换所有非字母或数字字符。此步骤可确保slug遵守URL惯例。随后,它采用ICONV函数将文本简化为us-ascii兼容格式,从而允许更广泛的字符集合兼容性。接下来,该函数使用正则表达式删除了不需要的字符,例如特殊字符和空格。此步骤可确保slug仅包含...
    编程 发布于2025-07-12
  • 如何使用Python的请求和假用户代理绕过网站块?
    如何使用Python的请求和假用户代理绕过网站块?
    如何使用Python的请求模拟浏览器行为,以及伪造的用户代理提供了一个用户 - 代理标头一个有效方法是提供有效的用户式header,以提供有效的用户 - 设置,该标题可以通过browser和Acterner Systems the equestersystermery和操作系统。通过模仿像Chro...
    编程 发布于2025-07-12
  • CSS强类型语言解析
    CSS强类型语言解析
    您可以通过其强度或弱输入的方式对编程语言进行分类的方式之一。在这里,“键入”意味着是否在编译时已知变量。一个例子是一个场景,将整数(1)添加到包含整数(“ 1”)的字符串: result = 1 "1";包含整数的字符串可能是由带有许多运动部件的复杂逻辑套件无意间生成的。它也可以是故意从单个真理...
    编程 发布于2025-07-12
  • 反射动态实现Go接口用于RPC方法探索
    反射动态实现Go接口用于RPC方法探索
    在GO 使用反射来实现定义RPC式方法的界面。例如,考虑一个接口,例如:键入myService接口{ 登录(用户名,密码字符串)(sessionId int,错误错误) helloworld(sessionid int)(hi String,错误错误) } 替代方案而不是依靠反射...
    编程 发布于2025-07-12

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3