首页 > 其他分享 >webpack生产环境优化:懒加载和预加载

webpack生产环境优化:懒加载和预加载

时间:2023-08-28 22:34:21浏览次数:39  
标签:index console js webpack test mul 优化 加载

转载请注明 来源:http://www.eword.name/
Author:eword
Email:[email protected]

webpack生产环境优化:懒加载和预加载

一、直接加载

浏览器一打开,直接加载了test.js
这里使用了直接导入方式。
直接导入:import { mul } from './test';

// ./src/js/index.js
//入口文件

console.log('index.js被加载了~');

/* 直接加载了 */
import { mul } from './test';

console.log(mul);

document.getElementById('btn').onclick = function () {
    console.log(mul(4, 5));
}

核心配置

// ./src/js/index.js
console.log('index.js被加载了~');

二、懒加载

懒加载,当文件需要使用时才加载。
需要使用import动态导入方式。

// ./src/js/index.js
console.log('index.js被加载了~');

/*
懒加载
*/
 document.getElementById('btn').onclick = function () {
     //懒加载,当文件需要使用时才加载~
     import(/* webpackChunkName:'test' */'./test')
         .then(({ mul }) => {
             console.log(mul(4, 5));
         })
 }


核心配置

// ./src/js/index.js
     import(/* webpackChunkName:'test' */'./test')
         .then(({ mul }) => {
            //成功加载时执行。
            ……
         })
  • webpackChunkName:'test' :配置打包时的chunk名称,既文件名。

三、预加载

预加载prefetch:会在使用之前,提前加载js文件。
同样需要使用import动态导入方式。
正常加载可以认为是并行加载(同一时间加载多个文件) 预加载 prefetch:等其他资源加载完毕,浏览器空闲了,再加载资源。

//入口文件
console.log('index.js被加载了~');

/* 
预加载
*/
document.getElementById('btn').onclick = function () {
    //预加载prefetch:会在使用之前,提前加载js文件.
    //正常情况下加载可以认为是并行加载(同一时间加载多个文件)。
    //实际上预加载 prefetch会等其他资源加载完毕,浏览器空闲了,再加载设置了预加载的资源。
    import(/* webpackChunkName:'test', webpackPrefetch:true */'./test')
        .then(({ mul }) => {
            console.log(mul(4, 5));
        })
} 

核心配置

// ./src/js/index.js
     import(/* webpackChunkName:'test', webpackPrefetch:true */'./test')
         .then(({ mul }) => {
            //成功加载时执行。
            ……
         })
  • webpackChunkName:'test' :配置打包时的chunk名称,既文件名。
  • webpackPrefetch:true:配置预加载模式。
  • 打包时会有prefetch提示。

四、工程文件目录

# 目录结构
.
├── src
│   ├── index.html
│   └── js
│       ├── index.js      //入口文件
│       └── test.js       //被加载的文件
└── webpack.config.js
// ./src/js/test.js

console.log('test.js被加载了~');

export function mul(x, y) {
    return x * y;
}

export function count(x, y) {
    return x - y;
}

<!-- ./src/index.html -->

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>webpack</title>
</head>

<body>
    <H1>hello lazy loading</H1>
    <button id="btn">加载</button>
</body>

</html>

标签:index,console,js,webpack,test,mul,优化,加载
From: https://www.cnblogs.com/eword/p/webpack202308272.html

相关文章

  • webpack生产环境优化:externals
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]生产环境优化:externalsexternals配置主要是为了防止某些通过CDN引入的包被打包到输出的bundle中。一、核心配置/*webpack.config.jswebpack的配置文件路径:./webpack.config......
  • webpack生产环境优化:dll
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]生产环境优化:dlldll动态链接库目的:单独的将多个指定的第三方库打包成一个chunk。意义:将不同的库分割开来,实现代码分割和避免重复打包,在节省打包时间的同时方便按需加载和预加载的实现......
  • 接口查询性能优化-缓存
    查询性能优化缓存种类mybatis一级缓存mybatis二级缓存本地缓存各个节点的数据不同步分布式缓存redis前端h5的缓存本地缓存session缓存mybatis一级缓存一个方法中对同一个sql,查询了多次当在这个方法上加@transactional后续的查......
  • jvm 类加载机制
    类加载机制类加载机制是指我们将类的字节码文件所包含的数据读入内存,同时我们会生成数据的访问入口的一种特殊机制。那么我们可以得知,类加载的最终产品是数据访问入口。虚拟机把Class文件加载到内存,并对数据进行校验,转换解析和初始化,形成可以虚拟机直接使用的Java类型,即java.......
  • UE4.27, Debug issues, "变量已被优化掉,因而不可用"
    调试时添加监控后,变量未被成功监控,显示"变量已被优化掉,因而不可用" 所使用的解决办法从解决方案配置的下拉菜单中选择DebugGameEditor  感谢阅读,敬请斧正......
  • FX110: 花点时间寻找适合自己的交易风格,优化利润
    交易风格通常与交易者的个性相关。在选择交易策略和制定交易计划之前,对性格和生活方式进行内部反思非常重要 。这是因为使用与你的性格相反的交易风格会导致日后难以坚持你的交易计划。当交易者找到最适合他们的交易风格时,这种风格通常会持续很长时间。在交易中的表现取决于你如何......
  • 深入探讨Android启动优化策略
    在当今激烈竞争的移动应用市场,应用的启动速度直接影响着用户的第一印象和满意度。作为主流的移动操作系统之一,Android的启动优化是开发者必须关注的关键领域。本文将详细介绍一些强大有效的Android启动优化策略,帮助你优化应用的启动过程,为用户创造更出色的体验。冷启动与热启动在着......
  • 关于onlyoffice完成安装配置后,文档一直加载中的坑
     坑:根据官方文档按顺序安装完erlang,Rabbit,PostgreSQL运行环境后,安装完onlyoffice,配置完成后测试时文档一直提示加载中,无任何其他报错,也没有报错日志,一番排查后初步认定为无法链接到数据库。通过再次阅读官方文档,发现是创建数据库时账号密码和安装时输入不一致导致的。。。调......
  • 从原理聊 JVM(五):JVM 的编译过程和优化手段
    一、前端编译前端编译就是将Java源码文件编译成Class文件的过程,编译过程分为4步:1准备初始化插入式注解处理器(AnnotationProcessingTool)。2解析与填充符号表将源代码的字符流转变为标记(Token)集合,构造出抽象语法树(AST)。抽象语法树每个节点都代表着程序代码中的一个语法结......
  • 批量python爬虫采集性能优化之减少网络延迟的方法
    今天,我们将一起探讨批量爬虫采集的性能优化,特别关注减少网络延迟的方法。网络延迟是爬虫程序中一个常见的性能瓶颈,通过优化网络延迟,我们可以提高爬虫程序的采集速度和效率。让我们一起来看看如何实现这一目标。1.使用异步请求传统的同步请求方式会导致爬虫程序在等待服务器响应时浪......