rate限制整个foreach迭代中的内容量

qmb5sa22  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(168)

序言:
我正在开发一个用户可以互相发送消息的网站。但是,当用户加入站点时,会加载消息,但当存储的消息太多时,会降低性能,并需要几秒钟才能加载阵列中的每条消息。
我有一个由所有用户发送的消息数组,但是,当用户打开站点时 forEach 循环将在消息数组中的每条消息中迭代,可能会使用户的设备崩溃或性能下降。
相反,我想问的是,我怎样才能一次加载20-30条消息,然后进行一次测试 setInterval 每10秒或当用户滚动阅读更多信息时,会加载20-30条以上的消息。
我目前已尝试使用当前代码,但由于阵列中要发送100s、1000s项,因此速度变慢:

messages.forEach(sent => {
    io.to(user.id).emit('message', formatMessage(user.username, sent));
})

为了澄清这一点,messages数组看起来很简单,

messages = ['<div class="message">Username, text, date </div>', '<div class="message">Username, text, date </div>']

以此类推,每次用户发送消息时,它都会将消息推送到数组。
我试着反转数组并发送最后10条消息,但这只会让事情变得更糟,让我感到困惑。谁能提供一些帮助?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题