Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

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

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

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


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

1 Reply

0 votes
by (71.8m points)

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

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

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

56.7k users

...