如何解决构建后flutter web重新加载资产数据
我想构建一个 Flutter Web 应用程序,它在运行时读取本地数据。据我所知,Flutter web不支持文件io,所以我用Asset读取数据。
问题来了:资产文件有时会发生变化。每次运行网络应用程序时,我都需要重新加载资产文件。我发现资产数据不会更新,直到我在 Chrome 中使用隐身模式。这意味着以某种方式缓存在 chrome 中的数据?
我不知道 Flutter 中如何使用资产数据以及如何在浏览器中缓存资产数据。
以下是我想做的简单重现步骤:
- 创建一个 Flutter Web 应用程序
- 创建一个简单的 sqlite 数据库并从
Flutter Asset
初始化它 - 在本地构建并运行它
- 以某种方式更新数据库
- 重新运行 Flutter 应用
- 如果我使用隐身模式,数据会正确更新
我想知道缓存可以在 Flutter 中清除还是需要在 Javascript 中完成。
任何建议和解释不胜感激!
解决方法
使用 rootBundle
.loadString
加载 yaml 文件。这些方法有一个不允许缓存的参数。
https://api.flutter.dev/flutter/services/AssetBundle/loadString.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。