我正在制作一个聊天应用程序,现在,当您打开应用程序时,页面会运行SQL查询并使用isactive = 1
检查来提取最后25条消息。当用户发布消息时,我使用Socket.io和Node.js将消息回显给其他用户并将其附加到聊天屏幕。它也同时提交到数据库,因此新用户将看到该消息。这是我现在用来附加消息的代码(稍后将样式)
socket.on( 'message', function( data ) {
console.log("saw a request to the socket");
var actualContent = $( "#messages" ).html();
var newMsgContent = '<li> NAME: ' + data.name + ' = ID: ' + data.id + ' = AVATAR: ' + data.avatar + ' = MESSAGE: ' + data.message + '</li>';
var content = newMsgContent + actualContent;
$( "#messages" ).html( content );
});
由于我只是附加消息,因此它没有删除消息而无需重新加载的功能,并且当聊天消息发布时它也将继续发布到您的屏幕,这将导致MASSIVE滚动窗口和使用在页面上。
有没有办法将此限制为仅显示25条最新消息?或者,我是否应该使用数据库中的最新数据重新加载内容div,而不是让系统附加消息?我看到的缺点是它将创建更多的数据库调用并堵塞SQL服务器。什么是更好的方式来传达这些事件?
我是Socket和Node的新手,到目前为止我都喜欢它。我之前的聊天引擎使用了纯JS,并且对内容进行了4秒的检查,如果有更改则会重新加载整个div。这留下了消息的延迟,真的很笨拙,所以我喜欢Node支持的速度。提前谢谢!
答案 0 :(得分:1)
插回元素时使用getSharedPreference("name of your preferences", Context.MODE_PRIVATE).edit().putString("key", "value").apply(); //use .commit() or apply() at the end.
:
slice