Как получать и показывать несколько сообщений в браузере всего одним запросом? - PullRequest
0 голосов
/ 10 февраля 2019

Я делаю веб-приложение с Экспресс в Node.js и SuperAgent на стороне клиента.У меня есть длинный процесс , работающий на стороне веб-сервера, который отправляет сообщение каждую секунду , пока это не будет сделано.Этот процесс представлен как метод API Rest и запускается при первом его вызове со стороны клиента.Итак, я не знаю, как этого добиться, не знаю, есть ли способ сохранить соединение живым и получать несколько ответов до его завершения, или мне нужно реализовать метод setInterval, который отправляет запросзнать текущее состояние этого процесса.

Знаете ли вы, как лучше всего реализовать такие функции?

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

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

<html>
<script>
var counter = 0;
var count = 0;
var randome = 0;
var undercount = -1; //To revert bullet behind loading bullet to original colour so that in 3 goes, the loading bar shall not be all loading colour 

console.log("Random Integer has to turn to under 5 to stop loading process");


var loadingDisplay = setInterval(myLoaderScreen, 1000);



function myLoaderScreen () {


    if (undercount > 2) {
        undercount = 0;
    }

    if (undercount < 0) {
        //Doing Nothing 
        
    }
    
    else {
        document.getElementsByClassName('Loader')[undercount].style.color = 'green'; //reverter
    }
    
    
    
    
    
    
    
    randome = Math.random() * 40;
    randome = Math.floor(randome);
    console.log("Random Integer is: "+randome);
    
    
    if (randome < 5) { //Random Integer has to turn to under 5 to stop loading process or apply limit in this if statement
        clearInterval(loadingDisplay);
    }
    
    else {
        count = counter % 3;
        document.getElementsByClassName('Loader')[count].style.color = 'blue'; //changer
        counter += 1;
        undercount += 1;
        
    }
}





</script>
<h1><span class="Load" style="color: green">Loading</span>
<span class="Loader" style="color: green">•</span>
<span class="Loader" style="color: green">•</span>
<span class="Loader" style="color: green">•</span></h1>
0 голосов
/ 10 февраля 2019

верно, один запрос получает один ответ.Таким образом, вы можете использовать setInterval для отправки запросов в определенное время, но я бы посоветовал вам использовать веб-сокеты.Проверьте Socket.io .Таким образом, вы можете отправлять обновления с сервера всякий раз, когда меняется текущий статус.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...