Flutter Web 吐槽

857 阅读2分钟

最近用 Flutter web 做了个个人项目的网页,发现了一些问题

网站是 rss.nubestour.com 可以体验下 Flutter web 的效果如何。

首先说下使用的版本

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.19.5, on macOS 13.6.6 22G630 darwin-x64, locale en-CN)
...
Chrome - develop for the web
...

1. 首次加载的文件过大

打包完之后的文件:

drwxr-xr-x 6 ubuntu ubuntu 4.0K Jun 20 18:04 assets
drwxr-xr-x 3 ubuntu ubuntu 4.0K Jun  6 13:35 canvaskit
-rw-rw-r-- 1 ubuntu ubuntu 5.2K Jun  8 16:01 favicon.ico
-rw-r--r-- 1 ubuntu ubuntu  917 Jun  6 12:41 favicon.png
-rw-r--r-- 1 ubuntu ubuntu 3.8K Mar 27 14:00 flutter.js
-rw-r--r-- 1 ubuntu ubuntu 8.1K Jun 20 18:02 flutter_service_worker.js
drwxr-xr-x 2 ubuntu ubuntu 4.0K Jun 20 18:04 icons
-rw-r--r-- 1 ubuntu ubuntu 5.2K Jun 20 18:02 index.html
-rw-r--r-- 1 ubuntu ubuntu 3.9M Jun 20 18:02 main.dart.js
-rw-r--r-- 1 ubuntu ubuntu  790 Jun  8 16:04 manifest.json
-rw-r--r-- 1 ubuntu ubuntu   76 Jun 20 18:02 version.json

可以看到 main.dart.js 大小是 3.9M ,对首次加载时间影响非常大(后续缓存之后加载时间就降下来了)。

2. 兼容性问题

只在我的电脑和手机上测试部分浏览器的兼容性:

  1. Chrome(126.0.6478.62) 完美运行
  2. Safari(16.6 (18615.3.12.11.2)) 无法运行
  3. 小米默认浏览器 可以运行,详情页滑动卡顿
  4. 手机Chrome(125.0.6422.165) 完美运行
  5. 手机Firefox(126.0.1) 可以运行,详情页滑动卡顿(存在浏览器卡死黑屏的情况,谷歌是不是你又在针对Firefox??¬‿¬)

3. 中文字体的显示问题

中文或者说非英文体系下的文字都会在第一时间显示成 '口' ,然后再过了一段时间(大概几百毫秒)然后才开始正常显示。带来的后果就是第一眼给用户展示的就是满屏的口口口乱码。

当然这个可以通过自定义字体来解决,但是中文的字体都是 x MB 向上的,又会影响首次加载时间。

上面就是我对于 Flutter web 首次使用的一些吐槽。