Flutter开发进阶之Flutter Web加载速度优化

本文介绍了如何通过FlutterWeb打包命令、本地调试、修改加载路径等方法优化Web加载速度,重点在于减少canvaskit.js、字体文件和wasm文件的加载时间,最终将页面加载时长降至50ms以内。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Flutter开发进阶之Flutter Web加载速度优化

通常使用Flutter开发的web加载速度会比较慢,原因是Flutter web需要加载的资源处于国外,以下是据此所做的相应优化。
在这里插入图片描述

一、FlutterWeb打包

flutter build web --web-renderer canvaskit

在这里插入图片描述

使用新命令打包

flutter build web --web-renderer canvaskit --no-tree-shake-icons --no-tree-shake-icons

在这里插入图片描述

二、进行本地调试

cd build/web
python3 -m http.server 8080

启动本地服务
在这里插入图片描述

三、获取本机地址ip

ipconfig getifaddr en0

在这里插入图片描述

四、浏览器加载web

以上通过获取本地ip和启动端口为8080的服务得到局域网内链接
在这里插入图片描述

通过浏览器查看web相关文件耗时
在这里插入图片描述
通过查看得知有三个文件耗时比较突出
canvaskit.js

https://www.gstatic.com/flutter-canvaskit/a794cf2681c6c9fe7b260e0e84de96298dc9c18b/chromium/canvaskit.js

KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf

https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf

canvaskit.wasm

https://www.gstatic.com/flutter-canvaskit/a794cf2681c6c9fe7b260e0e84de96298dc9c18b/chromium/canvaskit.wasm

五、修改加载路径

canvaskit.js和canvaskit.wasm在本地路径下有对应文件但是还是从线上拿去最新的文件
在这里插入图片描述
可以通过打包命令修改其加载路径,得到最终的打包命令为

flutter build web --web-renderer canvaskit --dart-define=FLUTTER_WEB_CANVASKIT_URL=/canvaskit/ --no-tree-shake-icons --no-tree-shake-icons

本地并未生成KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf,我们可以通过预先下载文件,放在web路径下
在这里插入图片描述
重新执行打包命令,最终打包结果如下
在这里插入图片描述
查看main.dart.js文件,查找到KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf
在这里插入图片描述
修改路径为相对路径
在这里插入图片描述

六、比对结果

重新从浏览器加载网页
在这里插入图片描述
canvaskit.js 323ms->3ms
KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf 376ms->6ms
canvaskit.wasm 661ms->39ms
整体文件加载时长从超过500ms减少到50ms以内,第一阶段加载速度优化完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kevin写代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值