Я использую CouchCMS в качестве серверной части моего сайта.Я хочу настроить групповой чат.Основные вещи, такие как учетные записи пользователей, форма чата, чаты, сохраненные в БД, полностью выполнены.Я хотел знать, как я могу обновить окно чата новым сообщением для всех людей в чате.
Я использовал setInterval (), чтобы обновить чат, но обнаружил две проблемы: 1. Использует многоресурс и иногда останавливает выполнение, 2. Если браузер не активен, setInterval () останавливается.
Как это можно преодолеть?
У меня есть json для всех чатов.Это я собираюсь использовать для заполнения своего окна чата.
PS: я не могу использовать стороннее решение, так как чат не должен выходить с сервера в любую другую базу данных.
$(document).ready(function(){
// Save Chat
$('form#chat-form').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: '<cms:show k_site_link /><cms:show k_template_name />?p=<cms:show k_page_id />',
data: $("form#chat-form").serialize(),
dataType: 'text',
success: function(data){
//alert("Saved");
document.getElementById("chat-form").reset();
update_chat();
}
})
});
update_chat();
setInterval(function(){
update_chat();
}, 10000);
function update_chat() {
$.ajax({
type: 'get',
url: '<cms:show k_site_link />Group-Chatting/blog-comment-json.php',
async: false,
dataType:"json",
data: {page_id: "<cms:show k_page_id />"},
success: function(data){
if(data != 'ERROR') {
$.each(data, function(index) {
$("#result").append(data[index].date);
});
}
}
});
}
});
Я могу отправить сообщение чата через форму, используя ajax, и, следовательно, оно сохраняется в БД.Но то же самое не отображается обратно без обновления страницы.Кроме того, JSON для данных чата не отображается на внешнем интерфейсе с форматированием HTML для отображения сообщений в виде чата.
Пожалуйста, сообщите.