Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
344 views
in Technique[技术] by (71.8m points)

Vue项目 利用websocket和终端保存实时通讯如何保证watch有效输出

主要使用watch监听消息,实时在页面中显示,若连接过程中,某一些时间点,终端返回的消息数量突增并且数据很多,易造成渲染次数过多,容易造成页面崩溃,有没有什么解决办法


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

因为 vue 是数据驱动视图,所以只要数据变了,下一次空闲就会更新视图。

既然知道视图渲染的原理,那么我从源头上解决。

  1. 节流,每 300ms 同步一次数据
    消息不是websocket来的吗?收到以后 push 到数组。然后触发一次 fun(有节流)。
    这样的话操作就从异步变成了同步,只会触发一次渲染
  2. 服务端合并,比如说weboscket只是发过来一个消息通知,然后可以通过其他手段二次拉取数据。

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...