我想创建一个非常简单的聊天系统,自动刷新并刷新用户提交的新聊天消息。Javascript调用函数在函数不工作
我现在有两个功能 - 一个用于提交新的消息,清除表单并刷新聊天(使用下一个函数)叫clearchat()
:
function clearchat() {
var frm = document.getElementById('chatform');
document.getElementById('fullmessage').value = document.getElementById('chatmsg').value;
frm.submit(); // form is being submitted to a hidden iframe.
frm.reset();
refreshchat();
}
,然后其他的是刷新聊天应该被称为当clearchat()
运行和使用的时间间隔也被称为每3秒:
function refreshchat() {
$('#qcwindow').load(document.URL + ' #qctext');
$('#chatwindow').load(document.URL + ' #chattext');
var chatwindow = document.getElementById('chatwindow');
var difference = chatwindow.scrollHeight - chatwindow.scrollTop;
if(difference < 750) {
chatwindow.scrollTop = chatwindow.scrollHeight;
}
}
此功能加载新的聊天信息到DIV,然后保持它滚动到div的底部,除非用户有手动滚动离开div的底部。
这两个函数都单独工作。我遇到的问题是,当用户提交新消息时,它确实提交表单并清除表单,但它确实不是刷新聊天。聊天仍然会自动刷新每3秒,但。但是我希望用户的新消息能够立即显示出来。
我无法弄清楚为什么clearchat()
函数中的refreshchat()
函数没有被调用。
任何帮助,将不胜感激。谢谢。
UPDATE:
我已经添加console_log("refrehsed")
到refreshchat()
功能,它被添加到日志中,每次均通过击球手动,也进入自动刷新,但仅股利居然就自动刷新更新。
如果从程序中删除自动3秒刷新,会发生什么情况?它是否正确刷新(当然,只有当你提交消息时)? – Katana314
问题是,ajax并没有立即完成,如果你想让用户发送的消息立即弹出,你可能必须手动修改聊天框的html内容以包含消息,以便它看起来像它已经出来即刻。 – chris97ong
@ Katana314 - 嗯..当我删除自动3秒的时间间隔,它会自动加载信息约75%的时间,但不是每一次。 – Jetteh22