我将构建一个应用程序,用于从http提取数据。 后端是PHP,在页面上它显示了phpmyadim数据库。
在扑朔迷离中,我想获取数据并将其显示在列表视图中。当数据更改时,我希望列表视图自动重新加载。
我的问题是我应该使用未来构建器还是流构建器?以及我该怎么做。
答案 0 :(得分:0)
您无法使用HTTP请求实时更新数据。只有套接字可以允许实时通信。在这种情况下,您需要使用websocket。泰斯人可能会帮助您:
答案 1 :(得分:0)
FutureBuilder
使您能够从服务器中获取异步数据,作为单个函数调用,最后以获取数据为单。同时,StreamBuilder
动态反映基础流中的任何更改。这是适合您的情况。至于如何执行它。有许多方法可以做到这一点,并且在不提供更多详细信息的情况下(例如,预期基础数据中将进行什么样的更新),无论是项目数还是项目字段中的更改,没有人可以为您提供特定于案例的信息例子。
答案 2 :(得分:0)
WebSockets是一个很好的选择。否则,我建议使用Firebase Cloud Messaging,它将在您打开应用程序时为您提供在线数据更新,并在应用程序关闭时推送通知。
在您的根窗口小部件中
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
@override
void initState() {
super.initState();
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
// or use setState
_bloc.dispatch(new LoadMyCalendar());
}
);
第二部分是在数据更改时从Web服务器应用程序调用Firebase API