我正在使用Flask在python应用程序中开发Web服务器.我正在实现这种情况:客户端(它不会是浏览器)发送请求,服务器在后台执行一些长任务,并在完成时将响应异步发送回客户端.有可能吗?
我正在iOS中构建一个即时消息应用程序.特别是我正在以最典型的方式实现对话的UI,即在视图的底部放置一个输入栏(UICollectionView要清楚),它在键盘上方滚动.现在,我知道如果我要实现这个视图作为UIToolbar与UIBarButtonItemS的不是自定义UIView与UIButton秒.有什么好处UIToolbar?
我处于聊天应用程序的常见场景中,其中对话列表由数据源驱动。
struct ConversationsView: View {
@ObservedObject var dataSource: ConversationsDataSource
...
var body: some View {
NavigationView {
List {
ForEach(dataSource.items) { item in
NavigationLink(destination: ChatView(conversationId: item.identifier)) {
Text(item.identifier)
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我可以点击一个单元格并输入ChatView, 大致如下所示:
struct ChatView: View {
@ObservedObject var dataSource: ChatDataSource
...
var body: some View {
List {
ForEach(dataSource.messages) { message in
MessageView(message: message)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我在里面ChatView和我发送消息时,ConversationsDataSource是更新的。因此ConversationsView'sbody被重新加载并ChatView重新创建,我认为这对性能不利。此外,由于这个原因,我在消息插入时没有得到任何动画。
是否可以避免在ConversationsDataSource更改时重新创建 NavigationLink 的目标视图? …
asynchronous ×1
background ×1
flask ×1
ios ×1
python ×1
response ×1
swift ×1
swiftui ×1
uitoolbar ×1
uiview ×1