首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >让JavaScript等到websocket收到回复

让JavaScript等到websocket收到回复
EN

Stack Overflow用户
提问于 2022-02-11 15:55:22
回答 2查看 403关注 0票数 0

正如标题上说的,我在玩websockets。到目前为止,一切都很好,除了我不能让这一页等到我们得到回复。现在,我确实有一个很好的理由这样做;请求的时间大约是2-10毫秒,因为它将达到127.0.0.1,所以几乎没有被注意到。但是,页面的进度足够长,足以到达需要响应的部分。

如你所知,这是个问题。

我在客户端使用普通的JS套接字接口,在后端使用golang websocket库。

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2022-02-11 16:16:58

只需将需要响应的部分嵌入其中即可。

代码语言:javascript
运行
复制
socket.onmessage = function (msg) {
    // part where msg.data is needed
}
票数 0
EN

Stack Overflow用户

发布于 2022-02-12 11:48:57

您正在使用像ReactJs/VueuJs这样的Web库吗?

如果您使用的是可以管理浏览器DOM的库,则可以使用旋转器策略。温,您的页面首先呈现您第一次发送给用户的自旋器,在您的数据摄像之前,您将移除旋转器并显示您的页面。如果你愿意的话,你可以用骨架代替旋转器。

如果你在使用react,你可以这样做。

代码语言:javascript
运行
复制
import { useState } from 'react'

const Page = () => {
 const [loading, setLoading] = useState(true)
 cosnt [data, setData] = useState({})

 useEffect(() => {
   socket.on('message', (data) => {
     setData(data)
     setLoading(false)
   })
 }, [])

 return (<>
    { loading ? <Spinner /> : <Screen data={data} /> }
 </>)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71082975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档