flutter - Flutter web 中的异步请求-回复设计
问题描述
我正在使用 Flutter 构建一个 Web 应用程序,并且我有一些在服务器端需要花费大量时间的请求,并且“持有”http 资源,直到请求得到答复。
为了解决这个问题,我读到您可以进行轮询或其他解决方案(请参阅此处)。
颤振的正确设计是什么?你将如何在颤振中实现它?
解决方案
我有一些需要花费大量时间的请求,并且“持有”http 资源,直到请求得到答复
听起来您正在使用同步方法,您的程序坐在那里等待响应返回。相反,请尝试使用异步方法,这将允许您的程序在您等待响应返回时继续运行。
我对 Dart 或 Flutter 一无所知,但这些应该可以帮助您入门:
- https://dart.dev/codelabs/async-await
- https://medium.com/flutterdevs/exploring-asynchronous-programming-in-dart-flutter-25f341af32f
更新以响应 OP 的评论
如果您在服务器上发生了长时间运行的任务,并且您需要将数据返回到 Web 客户端,那么根据您到目前为止所解释的内容,异步 HTTP 请求是一种合法的架构。
如果处理被阻止,那么您的实施可能存在问题。或者,浏览器和客户端之间可能存在问题(代理服务器问题等),因此请检查这些类型的问题。
如果您完全需要另一个选项,那么 websockets 可能值得研究。
推荐阅读
- angular - 为现有表单组添加验证器
- android - How to add multiple items to RecyclerView on Button Click?
- excel - Powershell 代码无法识别当前位置的所有 excel 文件(*.xlsm)
- javascript - HTML,JS,接收未捕获的类型错误:当变量具有值时,无法将属性“innerHTML”设置为 null
- c# - Web API Core 3.1 ExceptionHandler 中间件在写入 HttpContext.Response 时抛出“无法写入关闭的流”
- c# - 自适应卡提交操作在 iOS 移动应用程序上的 MS Teams 中不起作用
- angular - 如何将表格行的对象数据从一个组件传递到另一个组件
- kubernetes - kube-proxy开的端口是干什么用的,为什么要监听这么多端口?
- amazon-web-services - HIVE_METASTORE_ERROR / 由于“*”符号而无法查询数据
- javascript - 如何使用node js维护http请求的顺序?