小程序分包和预加载
一、目的
分包的目的:
提升小程序的首屏加载速度,其原理和PC端网页的路由懒加载非常类似。即当我们第一个打开一个小程序的时候,只加载主包以及一些公共的资源,当调到某个页面的时候,在加载该页面所在的分包,目前微信小程序,总包大小不操作20M,分包的各种不超过10个,每个大小不超过2M。
预加载:预先加载的意思,进一步提示小程序的渲染速度。
二、分包
uniapp 实现分包:
1、在manifest.json文件中开启分包模式
/* 小程序特有相关 */"mp-weixin": {"optimization": {"subPackages": true}},
2、针对每个分包建立独立的文件夹,文件夹里面一般包含 pages/static 两个文件夹,分别用于存放当前分包的页面和静态资源(图片)
3、在pages.json中声明分包的结构
//声明分包结构"subPackages": [//数组中的一个对象就对应着一个分包{"root": "goods-package",//分包的文件夹的名称//该分包中的页面路径"pages": [{"needLogin": false,"path": "pages/goodDetail/goodDetail"}]},],
在微信开发者工具中可以看到分包的结构
原生小程序分包:
1、配置 app.json 文件
{"pages": [// 主包里面的页面路径配置"pages/tabBar/index/index","pages/login/adminLogin/login",...],"subpackages": [// 分包的配置{"root": "plateMake", // 分包包名"name": "车牌预约","pages": [// 分包的页面配置"views/index/index",...]},... // 其他分包配置]// 省略其他...
}
写完分包之后,如果对应的文件夹和页面不存在,它会自动创建文件夹和页面。
其他设置及页面同 uniapp 的一样
三、预加载
uniapp:
在pages.json中配置
"preloadRule":{//key(在哪个页面中需要做分包的预加载):value(预加载的一些配置)"pages/category/category":{"network": "all","packages": ["goods-package"]//需要预加载的分包}
},
原生开发:
在 app.json
增加 preloadRule
配置来控制。
{"pages": ["pages/tabBar/index/index",...],"subpackages": [{"root": "plateMake","name": "车牌预约","pages": ["views/index/index",...]},{"root": "indep","pages": ["index"],"independent": true}],"preloadRule": {"pages/tabBar/index/index": {"network": "all","packages": ["important"]},"indep/index": {"packages": ["__APP__"]}}
}
preloadRule
中,key
是页面路径,value
是进入此页面的预下载配置,每个配置有以下几项:
字段 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
packages | StringArray | 是 | 无 | 进入页面后预下载分包的 root 或 name 。__APP__ 表示主包。 |
network | String | 否 | wifi | 在指定网络下预下载,可选值为:all : 不限网络wifi : 仅wifi下预下载 |
限制
同一个分包中的页面享有共同的预下载大小限额 2M,限额会在工具中打包时校验。
如,页面 A 和 B 都在同一个分包中,A 中预下载总大小 0.5M 的分包,B中最多只能预下载总大小 1.5M 的分包。
相关文章:

小程序分包和预加载
一、目的 分包的目的: 提升小程序的首屏加载速度,其原理和PC端网页的路由懒加载非常类似。即当我们第一个打开一个小程序的时候,只加载主包以及一些公共的资源,当调到某个页面的时候,在加载该页面所在的分包…...

【MATLAB 串口调试+虚拟串口测试】
文章目录 前言一、matlab 串口二、测试串口1.从系统中获取串口号2.避免串口打开被占用3. 安装虚拟串口4. 打开串口助手和MATALB 进行测试 总结 前言 提示:这里可以添加本文要记录的大概内容: 项目需要: 提示:以下是本篇文章正文…...
mac 安装最新版nginx
1. clone最新版本源代码: git clone https://github.com/nginx/nginx.git 2. 下载PCRE 没有PCRE那我们就下,下载地址:https://sourceforge.net/projects/pcre/files/pcre/,笔者下载的pcre-8.45.zip,下载之后解压到ngi…...

极氪汽车困局:营销频繁车、产品力不足
“ 极氪汽车的“车上吃火锅”营销活动虽登上热搜,但因频繁忽视老用户和产品力不足的争议,并未赢得消费者好感,反而加剧负面印象。 ” 科技新知 原创 作者丨颜瞾 编辑丨蕨影 近日,背靠吉利集团的极氪…...
Icecream 与 Python 日志库及性能分析整合指南
简介 Icecream 是一个用于简化 Python 调试过程的库,它允许开发者轻松打印变量名和它们的值。Python 的 logging 库则提供了一个强大的日志记录系统,用于跟踪应用程序的运行情况。而性能分析则是评估代码执行效率的重要手段。本指南将介绍如何将 Icecre…...
请解读下面的程序:pat =re.compile(r‘\d+‘)res = pat.search(‘www.ddd996.com‘)res.group()
请解读下面的程序: pat re.compile(r\d) res pat.search(www.ddd996.com) res.group() 这段程序使用了正则表达式模块re来搜索字符串中的数字。首先,通过re.compile函数创建了一个正则表达式对象pat,该正则表达式是r\d,意味着匹…...
Fibonacci任意一位的值得算法
csDP写法 using System; class Program {static void Main(string[] args){Console.WriteLine("请输入一个非负整数:");// 读取用户输入while(true){string input Console.ReadLine();int n Convert.ToInt32(input);if (n < 0){Console.WriteLine(&…...
gbn,sr和tcp的区别
这是关于三种不同协议(GBN、SR、TCP)处理传输时序和丢包的行为比较。我们可以分别填充并解释它们的处理机制: GBN(Go-Back-N)协议: 类型发送方的计时器保存的是啥接收方收到失序的分组怎么办超时的时候发…...

FastGPT本地开发 之 通过Navicat管理MongoDB、PostgreSQL数据库
1. 背景 前期已经完成FastGPT的本地化部署工作,通过Docker启动FastGPT的相关容器即可运行。(共6个容器) 2.本地化开发 2.1 前置依赖 2.2 源码拉取 git clone gitgithub.com:labring/FastGPT.git2.3 数据库管理 本地化运行的FastGPT使用…...
hardhat部署智能合约
Hardhat安装 安装node 可以使用 nvm 安装node GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions 安装Hardhat 打开命令行工具,输入: mkdir hardhat-demo cd hardhat-demo npm i…...

界面控件DevExtreme中文教程 - 如何与Amazon S3和Azure Blob存储集成?
DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac,…...
【ERROR】ubuntu source: not found
Ubuntu 24.04.1 LTS系统设置环境变量,执行 source ~/.bashrc出现错误: source command not found 解决方案:不需要处理( echo 以下你的环境变量,发现是生效的),ubantu系统 中 /bin/sh 通常链接到 dash,这…...

聚焦IOC容器刷新环节postProcessBeanFactory(BeanFactory后置处理)专项
目录 一、IOC容器的刷新环节快速回顾 二、postProcessBeanFactory源码展示分析 (一)模版方法postProcessBeanFactory (二)AnnotationConfigServletWebServerApplicationContext 调用父类的 postProcessBeanFactory 包扫描 …...

配置nginx服务通过ip访问多网站
过程概要 1.前提配置 关防火墙 关selinux 2.安装web服务程序nginx 3.查看nginx是否开启 4.为当前主机添加多地址(ip a) 5.自定义nginx配置文件通过多地址区分多网站 /etc/nginx/conf.d/test_ip.conf server { #标记为一个虚拟主机 } 6.根据配置…...

银河麒麟V10设置QT开发程序开机自启动
1、切换root用户: su root 2、进入/etc/xdg/autostart目录: cd /etc/xdg/autostart 3、创建一个test.desktop文件,文件名不一定命名为test,可以自己随意命名: touch test.desktop 4、完善test.desktop文件内容: …...
RabbitMQ高级特性详解
前言 RabbitMQ是一款广泛使用的开源消息队列软件,它基于AMQP(Advanced Message Queuing Protocol)标准实现。本文将带你深入了解RabbitMQ的一些高级特性,包括消息确认、死信队列、延迟队列、事务处理以及消息分发策略等ÿ…...
提升泛化能力的前沿方法:多任务学习在机器学习中的应用与实践
提升泛化能力的前沿方法:多任务学习在机器学习中的应用与实践 📋 目录 🧩 多任务学习的概念与动机🌐 多任务学习在自然语言处理中的应用案例🖼️ 多任务学习在计算机视觉中的应用案例⚙️ 项目实践:实现多…...
【小白学机器学习16】 概率论的世界观2
目录 一 从正态分布说起 1.1 正态分布是自然分布,是客观 1.2 万物不齐 1.3 中庸 1.4 动态平衡 正态分布,概率论都是一种世界观 一 从正态分布说起 1.1 正态分布是自然分布,是客观 世界是客观的,是不以人们的意志想法为转…...
洛谷 P9868 [NOIP2023] 词典
好久不写博客了,今天来水一篇 原题链接 初看此题在洛谷上的定位是黄题,实际上也并不是很简单。 其实主要就用到了贪心的思想,先说一下我在做题的时候是怎么想的吧。 先看了部分分,10分是很好拿的,再就分析题意&…...

跨浏览器免费书签管理系统
随着互联网信息的爆炸式增长,如何有效管理我们日常浏览中发现的重要网页,成为了每个重度互联网用户的需求。一个跨平台的书签管理网站能够帮助用户在不同设备之间无缝同步和管理书签。本文将分享如何使用 Python 和 SQLite 构建一个简单、易于维护的跨平…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...