Я пытаюсь создать очень простую чат-систему с автоматическим обновлением и обновлением при представлении нового сообщения чата от пользователя.Javascript Calling Function In Function Not Working
Я в настоящее время есть две функции - одна для подачи нового сообщения, очищая форму и обновления чата (с помощью следующей функции) называется 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 секунды. Но я хочу, чтобы новое сообщение от пользователя появилось мгновенно.
Я не могу понять всю жизнь, почему функция refreshchat()
внутри функции clearchat()
не вызывается.
Любая помощь будет оценена по достоинству. Благодарю.
UPDATE:
Я добавил console_log("refrehsed")
функции refreshchat()
и добавляется в журнал каждый раз, как через ударять ввести вручную, а также автоматическое обновление, но на самом деле ДИВ только обновляет на автоматическое обновление.
Что произойдет, если вы удалите автоматическое 3-секундное обновление из программы? Правильно ли он обновляется (конечно, только когда вы отправляете сообщение)? – Katana314
Дело в том, что ajax не выполняется мгновенно, если вы хотите, чтобы сообщение, посланное от пользователя, появилось мгновенно, вам, вероятно, придется вручную изменить содержимое html в окне чата, чтобы включить сообщение, чтобы оно выглядело так, как будто оно отсутствует мгновенно. – chris97ong
@ Katana314 - Хм .. Когда я удаляю автоматический 3-секундный интервал, он автоматически загружает информацию примерно в 75% случаев, но не каждый раз. – Jetteh22