首页 > 解决方案 > 使用 rootBundle.loadString 从 json 文件中读取数据会很慢吗?

问题描述

我只是想知道使用rootBundle.loadString.

我知道这是一个异步过程,我应该等待它,这是否意味着我不应该经常这样做,或者我应该在读取文件时显示加载指示器?还是不是那么慢?

标签: jsonflutterasynchronousdart

解决方案


loadStringcompute对大于 10Kb 的文件使用(即运行隔离)(有关最新详细信息,请参阅函数实现)。我发现在某些 Android 设备(例如,Samsung J5 2017)上,隔离工作(或启动,无关紧要)速度很慢。不知道为什么——这个架构是慢速设备还是一些多线程调用问题。所以你可以直接使用'rootBundle.load()',比如:

Future<String> loadString(String key) async {
    final ByteData data = await rootBundle.load(key);
    return utf8.decode(data.buffer.asUint8List());
}

推荐阅读