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

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以内,第一阶段加载速度优化完成。

相关推荐
只睡四小时2 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
君赏3 天前
棉宇宙 Flutter 热更新是如何落地的
flutter
志尊宝3 天前
Vue3 零基础每日笔记(055):组件里正确使用 store——storeToRefs 解构与 $patch 批量修改
笔记·vue·html·前端开发·软件开发
恋猫de小郭3 天前
AndroidX 新增 Security State ,支持可编程的系统安全状态查询
android·前端·flutter
zihan5183 天前
自己做软件日记9/21 得到了一个良好的文件结构框架
后端·flutter·前端框架·android studio
吴声子夜歌3 天前
HTML——看似普通的元素的背后(<a>标签)
html
IMPYLH3 天前
HTML 的 <style> 元素
前端·html
刃神太酷啦3 天前
前端入门第一课:HTML 基础语法 + 常用标签 + 实战全解
服务器·c语言·前端·javascript·css·c++·html
IMPYLH3 天前
HTML 的 <strong> 元素
前端·html
开开心心就好3 天前
批量提取PDF中的图片,直接导出原图
前端·javascript·支持向量机·智能手机·pdf·html·启发式算法