LIVE Chat - лучший вариант для обновления новых чатов без обновления страницы - PullRequest
0 голосов
/ 22 сентября 2019

Я использую 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 для отображения сообщений в виде чата.

Пожалуйста, сообщите.

...