场景
IM聊天室
人数大概几万人在线,
并发较高的时候一秒钟成百上千条消息推送,
前端该如何优化处理呢?
目前有个方案是设一个定时器,将接收到的消息存起来,然后定时渲染, 但这样失去了消息的即时性。
请问有什么好的方法吗?
场景
IM聊天室
人数大概几万人在线,
并发较高的时候一秒钟成百上千条消息推送,
前端该如何优化处理呢?
目前有个方案是设一个定时器,将接收到的消息存起来,然后定时渲染, 但这样失去了消息的即时性。
请问有什么好的方法吗?
对于这种需要实时推送大量消息的场景,使用定时器来渲染消息显然不是一个很好的解决方案,因为它会导致消息的延迟和不及时。下面是一些可能的优化方案:
综上所述,针对IM聊天室这种需要实时推送大量消息的场景,我们可以采用一系列技术手段来优化系统的性能和稳定性,提高消息推送的实时性和可靠性。
使用定时器或者requestAnimationFrame函数来避免一次性渲染大量数据导致页面卡顿没有任何问题 对于在乎即时性js执行远比你想的要快 再就虚拟滚动啊 数据缓存啊 数据压缩啊 都可以用的上
实际上 requestAnimationFrame + 虚拟滚动 就已经可以优化页面很多了。
如果想防止页面滚动过快又想要即时性的话我建议是:利用数组将消息存起来并且采用定时器每50ms或者100ms用unshift出队列渲染这样可以实现一个伪即时性。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
几万人,每秒钟几百条消息,随便你怎么优化,没有任何客户体验可言,还想要消息即时性,你考虑过,客户端,只能看到屏幕在疯狂滚动,根本看不清任何内容吗?