Javascript получать данные с сервера непрерывно во время работы веб-приложения - PullRequest
0 голосов
/ 18 июня 2020

У меня небольшая проблема: я хочу получить файл JSON с моего работающего сервера, чтобы несколько раз в секунду предоставить таблицу с последними данными. Поэтому я планировал написать функцию asyn c, которая вызывается при запуске и запускается во время работы моего веб-приложения, но после запуска этого кода моя веб-страница больше не отвечает. Моя идея заключалась в том, чтобы установить тайм-аут, чтобы он ждал 500 мс, а затем запускался снова, но, очевидно, это не сработает. Что я могу сделать лучше всего? Спасибо за помощь.

let running = false;
//called on start
function run() {
    //some code
    running = true;
    getLatestData();
    //some code
}

async function getLatestData() {
while (running) {
    setTimeout(() => {
        let xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function () {
            if (this.readyState == 4 && this.status == 200) {
            //some code (JSON parse, set html and so on, that should work)
            }
        };
        xmlhttp.open("GET", "/api/data", true);
        xmlhttp.send();
    }, 500);
}
...