大家好我正在上一个社交网站,我有一个聊天框。 一切工作正常在聊天箱中,除了我必须每5秒后重新加载div来获取新的消息,这对我造成一些问题,就像同样的数据库查询将在每5秒钟一次又一次运行一遍。并且每次聊天箱重新加载时滚动条都会顶起,我无法将其设置为每5秒钟滚动到底部,因为可能有人正在阅读消息,并且他不想一次又一次滚动该框。 所以简而言之,我想问的是,是否有任何其他方式在聊天框中创建新消息。 如果这是唯一的方法,你可以请告诉我如何编码这个逻辑 如果滚动是从div底部以上10px以上滚动到底部和追加新的消息,其他明智只是追加新的消息。聊天并使滚动条置于底部并追加新消息。
这里是我的代码:
var autoload1 = setInterval(
function showthemess1()
{
$.ajax({
type: 'POST',
url: 'chitchatback2.php',
data: {'chattingwith':"<?=$nameIS2['id']?>"},
success: function(chats){
$("#chatboxdiv").empty().append(chats);
} });
}, 5000);
制作滚轮来的底部i可以像
$(".bechmsgbox").animate({
scrollTop: $("#chatboxdiv")[0].scrollHeight
},'slow');
考虑只加载异步的新消息。因此,当最后一次请求完成后,每5秒向服务器发送一个请求,并将时间戳作为参数。服务器只响应新的消息,如果有的话。这些新消息会附加到聊天框内容。从服务器接收到响应时,保存下一个请求的当前时间。 快速提琴没有请求,并通过点击按钮手动加载:http://jsfiddle.net/sQ6ZP/ – Capricorn