【发布时间】:2021-08-14 22:17:06
【问题描述】:
我有一个使用 Django 后端的 React 应用程序,我使用 webSocket 与后端连接,当有一些变化时更新状态。但是变化非常迅速,所以只有最后的变化是可见的。我想在显示下一条消息之前显示上一条消息一段时间。这是我的代码
import React, { useEffect, useState, useRef } from "react";
const Text = () => {
const [message, setMessage] = useState("");
const webSocket = useRef(null);
useEffect(() => {
webSocket.current = new WebSocket("ws://localhost:8000/ws/some_url/");
webSocket.current.onmessage = (res) => {
const data = JSON.parse(res.data);
setMessage(data.message);
};
return () => webSocket.current.close();
}, []);
return <p>{message}</p>;
};
export default Text;
所以消息应该在一定时间内可见(以秒为单位,例如 - 5 秒),然后应该显示下一条消息。知道如何做到这一点吗?
【问题讨论】:
-
您希望减速使用去抖动、节流还是排队?
-
哪个最简单
-
它们在语义上是不同的,你应该考虑哪一个对你从 websocket 显示的数据最有意义。
-
我是初学者,所以对这些术语不太了解,我正在寻找一个简单的解决方案
标签: javascript reactjs websocket react-hooks