正如标题上说的,我在玩websockets。到目前为止,一切都很好,除了我不能让这一页等到我们得到回复。现在,我确实有一个很好的理由这样做;请求的时间大约是2-10毫秒,因为它将达到127.0.0.1,所以几乎没有被注意到。但是,页面的进度足够长,足以到达需要响应的部分。
如你所知,这是个问题。
我在客户端使用普通的JS套接字接口,在后端使用golang websocket库。
有什么想法吗?
发布于 2022-02-11 16:16:58
只需将需要响应的部分嵌入其中即可。
socket.onmessage = function (msg) {
// part where msg.data is needed
}
发布于 2022-02-12 11:48:57
您正在使用像ReactJs/VueuJs这样的Web库吗?
如果您使用的是可以管理浏览器DOM的库,则可以使用旋转器策略。温,您的页面首先呈现您第一次发送给用户的自旋器,在您的数据摄像之前,您将移除旋转器并显示您的页面。如果你愿意的话,你可以用骨架代替旋转器。
如果你在使用react,你可以这样做。
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} /> }
</>)
}
https://stackoverflow.com/questions/71082975
复制相似问题