Flutter web Wasm: deferred loading để first paint nhẹ hơn
Wasm mở khóa đồ họa gần native trên web — kèm kỷ luật đóng gói mới. Flutter 3.47 thêm deferred loading experimental cho build Wasm để tách app lớn thành module lazy.
Lệnh build
flutter build web --release --wasm
flutter build web --release --wasm --enable-wasm-deferred-loading
Điều kiện tiên quyết
- Rời
dart:htmlsangpackage:webvà JS interop hiện đại. - Update package còn giả định interop chỉ dart2js.
Chiến lược tách module
- Giữ login/shell ở module chính.
- Defer màn nặng (admin, editor, map).
- Đo time to interactive, không chỉ dung lượng tải.
Cạm bẫy
- Library deferred không được bắt buộc ở frame đầu.
- UI nặng canvas/Skottie vẫn cần ngân sách asset chặt.
- Không phải tổ hợp browser/flag nào cũng giống nhau — test Chrome, Safari, Firefox.