Как мгновенно обновить интерфейс фляги при обновлении базы данных MongoDb?

Я обновляю базу данных MongoDb из потокового приложения. И я хочу, чтобы изменения в базе данных отражались во внешнем интерфейсе.

Во внешнем интерфейсе я в настоящее время запрашиваю базу данных, но мне нужно обновлять ее вручную, чтобы получать новые обновления. Периодическое обновление не является хорошим вариантом, так как обновления могут выполняться слишком быстро, много раз в секунду, или даже очень медленно, несколько раз в час.

Я наткнулся на SSE (события, отправленные сервером). Но не знаю, можно ли его использовать в моем случае.


person Kaivalya Swami    schedule 14.05.2020    source источник


Ответы (1)


Я искал хороший метод, основанный на PUSH. Где внутренний сервер может измениться на внешний клиент.

Что я использовал: метод, основанный на PULL. Обычно в таких случаях можно использовать AJAX-запросы с setInterval() в javascript. В этом случае не нужно обновлять всю страницу. Но просто периодически используйте запрос ajax, чтобы регулярно проверять наличие обновлений. А в случае обновления можно добавить/заполнить соответствующий HTML-код в соответствующем файле .

Вот что я использовал:

function update(){ // This functions is called repeatedly 
    $.ajax({
        url: "/update/",
        type: "POST",
        success: function(resp){
            $('div.stats').html(resp.data); // append/fill to appropriate div
        }
    });
}

var myVar = setInterval(update, 1000); // update every 1sec 

Этот метод очень часто используется. Это послужило моей цели.

Также есть способы вместо этого использовать подход, основанный на PUSH. См. COMET программирование. Но я не смог найти подходящий инструмент для синхронизации с веб-фреймворками.

person Kaivalya Swami    schedule 28.05.2020