Разбор ответа на 8 МБ замораживает анимацию загрузки на полторы секунды, хотя код async
Future<List<Product>> loadCatalog() async {
final body = await http.read(catalogUri);
final list = jsonDecode(body) as List;
return list.map((e) => Product.fromJson(e)).toList();
}
Пока грузится каталог, крутится индикатор. После скачивания он замирает примерно на 1,5 с, в DevTools — длинный кадр в UI-потоке. Что поможет?
- Разбирать JSON в отдельном изоляте через compute
- Обернуть jsonDecode в Future.microtask
- Добавить await перед вызовом jsonDecode
- Вызывать loadCatalog без await из initState
