我有一个聊天应用程序。在这个聊天应用程序中,过去发送的消息是可见的,但随着消息数量的增加,页面长度增加得太多。我可以在这个应用程序中将每10篇文章分页为1页吗?添加过去聊天记录的JavaScript代码:
socket.on('old_messages', (msg) => {
msg.forEach(element => {
let messageContent = " <p class='card'><b>" + element.username + ": </b>" + element.content + "</p>";
MESSAGE_LIST.innerHTML = messageContent + MESSAGE_LIST.innerHTML;
});
});
字符串
应用程序截图:
的数据
3条答案
按热度按时间pgvzfuti1#
**对于UI:**理想情况下,您的聊天应用程序应该是显示消息的页面上定义大小的div。您可以在该div中启用滚动,并将视图保留在最新消息处。
**对于消息:**一次显示N条消息,用户滚动时不应显示旧消息。
选项1用户滚动到旧消息时,从后台取消息。这里假设您有一个分页的API,可以根据页面大小和页码返回N个消息。
选项2如果您没有后台分页的API来拉取消息,那么您可以将消息存放在前端的不同数组中,并使用不同的数组渲染消息。当用户滚动时,将消息从第一个数组移动到第二个数组以呈现它们。**注意:**此方法会使网页速度变慢,因为消息数量会增加。
vlju58qv2#
你可以使用Array.slice方法来完成分页。
字符串
但实际上,这不是最好的收获。最佳实践是让后端根据分页选项发送数据。
zzzyeukh3#
您可以尝试以下操作:
字符串