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

这篇具有很好参考价值的文章主要介绍了Flutter开发进阶之Flutter Web加载速度优化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

通常使用Flutter开发的web加载速度会比较慢,原因是Flutter web需要加载的资源处于国外,以下是据此所做的相应优化。
flutter web dart_sdk.js优化,移动端开发进阶,flutter,dart,webkit,html5,html

一、FlutterWeb打包

flutter build web --web-renderer canvaskit

flutter web dart_sdk.js优化,移动端开发进阶,flutter,dart,webkit,html5,html

使用新命令打包

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

flutter web dart_sdk.js优化,移动端开发进阶,flutter,dart,webkit,html5,html

二、进行本地调试

cd build/web
python3 -m http.server 8080

启动本地服务
flutter web dart_sdk.js优化,移动端开发进阶,flutter,dart,webkit,html5,html

三、获取本机地址ip

ipconfig getifaddr en0

flutter web dart_sdk.js优化,移动端开发进阶,flutter,dart,webkit,html5,html

四、浏览器加载web

以上通过获取本地ip和启动端口为8080的服务得到局域网内链接
flutter web dart_sdk.js优化,移动端开发进阶,flutter,dart,webkit,html5,html

通过浏览器查看web相关文件耗时
flutter web dart_sdk.js优化,移动端开发进阶,flutter,dart,webkit,html5,html
通过查看得知有三个文件耗时比较突出
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 web dart_sdk.js优化,移动端开发进阶,flutter,dart,webkit,html5,html
可以通过打包命令修改其加载路径,得到最终的打包命令为

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

本地并未生成KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf,我们可以通过预先下载文件,放在web路径下
flutter web dart_sdk.js优化,移动端开发进阶,flutter,dart,webkit,html5,html
重新执行打包命令,最终打包结果如下
flutter web dart_sdk.js优化,移动端开发进阶,flutter,dart,webkit,html5,html
查看main.dart.js文件,查找到KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf
flutter web dart_sdk.js优化,移动端开发进阶,flutter,dart,webkit,html5,html
修改路径为相对路径
flutter web dart_sdk.js优化,移动端开发进阶,flutter,dart,webkit,html5,html

六、比对结果

重新从浏览器加载网页
flutter web dart_sdk.js优化,移动端开发进阶,flutter,dart,webkit,html5,html
canvaskit.js 323ms->3ms
KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf 376ms->6ms
canvaskit.wasm 661ms->39ms
整体文件加载时长从超过500ms减少到50ms以内,第一阶段加载速度优化完成。文章来源地址https://www.toymoban.com/news/detail-855811.html

到了这里,关于Flutter开发进阶之Flutter Web加载速度优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Flutter开发进阶之动画

    在Flutter中,动画是至关重要的一个部分,它能够为应用程序提供更加丰富和生动的用户体验,Flutter中的动画系统是UI框架的核心功能之一,也是开发者学习Flutter框架的重要部分,由于动画原理在所有程序中都是相同的,即视觉暂留,因此理解这一原理对于更好地使用Flutter的

    2024年01月21日
    浏览(42)
  • 一统天下 flutter - 插件: flutter 使用 web 原生控件,并做数据通信

    源码 https://github.com/webabcd/flutter_demo 作者 webabcd 示例如下: libpluginplugin2.dart libpluginflutter_plugin_web2_stub.dart libpluginflutter_plugin_web2.dart 源码 https://github.com/webabcd/flutter_demo 作者 webabcd

    2024年02月03日
    浏览(40)
  • Flutter 构建和发布为 Web 应用

    flutter build web 使用 flutter build web 命令构建应用程序以进行部署。你也可以通过使用 --web-renderer 自行选择渲染方式。(请查看 网页渲染器)这将生成包括资源的应用程序,并将文件放入项目的 /build/web 目录中。 一般的应用程序的 release 版本具有以下结构: python -m http.server

    2024年02月01日
    浏览(50)
  • Flutter笔记:Web支持原理与实践

    Flutter笔记 Web支持原理与实践 作者 : 李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 : 291148484@163.com CSDN:https://blog.csdn.net/qq_28550263/article/details/135037756 华为开发者社区:https://bbs.huaweicloud.com/blogs/418443 一个纯 Flutter 构建的 Web 示例站点(建设中): Flutter-Online Top http://

    2024年01月23日
    浏览(37)
  • Flutter:web项目跨域问题解决

    前后端解决系列 文章目录 一、Flutter web客户端解决本地环境调试跨域问题 二、Flutter web客户端解决线上环境跨域问题 就一句命令【--web-browser-flag \\\"--disable-web-security\\\"】,用来屏蔽浏览器域名请求同源策略  配置在run/debug configurations中,使用run按钮直接运行 首先确定几个信息

    2024年02月02日
    浏览(36)
  • flutter web项目中鼠标拖动无法实现滚动效果

    在完成web的flutter项目时,发现ListView列表使用鼠标拖动无法滚动,尝试发现使用触摸板可以实现滚动,但如果用户使用没有触摸板的电脑或列表为横向滚动时就无法实现项目需求了,在解决问题的过程中尝试了以下方法: 1.尝试使用点击事件模拟滑动手势 如果web项目中无法使

    2024年02月09日
    浏览(42)
  • Flutter开发进阶之并发操作数据库

    尽管 Flutter 本身不包含任何数据库功能,但可以使用各种第三方库和插件来在 Flutter 应用程序中实现数据库功能; 以下将使用sqflite作为例子,sqflite允许在 Flutter 应用程序中执行 SQL 查询,创建和管理数据库表,以及执行其他常见的数据库操作。 在将sqflite添加到Flutter项目的

    2024年01月17日
    浏览(37)
  • Flutter-Web从0到部署上线(实践+埋坑)

    本文字数: 7743 字 预计阅读时间: 60 分钟 01 前言  首先说明一下,这篇文章是给 具备Flutter开发经验的客户端同学 看的。Flutter 的诞生虽然来自 Google 的 Chrome 团队,但大家都知道 Flutter 最先支持的平台是 Android 和 iOS,至今最核心的维护平台依然是 Android 和 iOS。由

    2024年02月02日
    浏览(28)
  • Flutter 3.10 之 Flutter Web 路线已定,可用性进一步提升,快来尝鲜 WasmGC

    随着 Flutter 3.10 发布,Flutter Web 也引来了它最具有「里程碑」意义的更新, 这里的「里程碑」不是说这次 Flutter Web 有多么重大的更新,而是 Flutter 官方对于 Web 终于有了明确的定位和方向 。 首先我们简单聊提升,这不是本篇的重点,只是顺带。 本次提升主要在于两个大点:

    2024年02月05日
    浏览(45)
  • Flutter开发进阶之使用Socket实现主机服务

    在Flutter开发实践中,有一些业务是需要主从机合作搭配的服务,其中一些重要的数据和功能是交由主机进行存储和管理,从机再通过UDP和TCP与主机通讯去获得权限,一般在同一个局域网内的多端实现。 广播 在主从机未建立联系之前,主从机除了自身的权限是已知的是不知道

    2024年01月21日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包