【发布时间】:2020-04-06 13:59:11
【问题描述】:
我正在调用一个从数据库中检索消息的方法。我在该方法上使用setInterval()(用于实时聊天)
问题是,当我单击另一个用户时,我会再次从该用户那里收到消息(不刷新)。之后,该功能开始同时带来来自 2 个用户的消息,来自第一个用户和来自第二个用户。就像我克隆了该功能以在不同的用户上工作两次。我该如何解决这个问题?
function open_message_box(thread_id, now, x = false) {
$("#msg_body").html("<div class='text-center' id='payment_loader'><i class='fa fa-refresh fa-5x fa-spin'></i></div>");
$("#msg_box_header").html("<a class='c-base-1' target='_blank' href='<?=base_url()?>home/member_profile/" + $(now).find('.contacts-list-name').data('member') + "'>" + $(now).find('.contacts-list-name').html() + "</a>");
$("#msg_refresh").html("<a onclick='refresh_msg(" + thread_id + ")'><i class='fa fa-refresh'></i> <?=translate('refresh')?></a>");
$.ajax({
type: "POST",
url: "<?=base_url()?>home/get_messages/" + thread_id,
cache: false,
success: function(response) {
clearInterval(message_interval);
var message_interval = setInterval(function() {
$("#msg_body").load('<?=base_url()?>home/get_messages/' + thread_id);
}, 3000);
$("#msg_body").removeAttr("style");
$("#message_text").removeAttr('disabled');
$("#message_text").val('');
$("#msg_body").html(response);
}
});
}
【问题讨论】:
标签: javascript jquery ajax