Асинхронные обновления показывают только 1 значение - PullRequest
0 голосов
/ 30 мая 2019

Ссылка от: https://www.shanelynn.ie/asynchronous-updates-to-a-webpage-with-flask-and-socket-io/

Я изменяю этот код для работы с датчиками нагрузки и непрерывного отображения на веб-странице.Все прекрасно работает, и правильный код отображается на веб-странице, однако я хочу, чтобы на веб-странице отображалось только самое последнее значение, а не 10 значений за раз.Сначала я подумал, что это будет в файле static / js / application.js, но изменение этого кода не решит проблему.Я не уверен, где определяется div id = "log", если именно здесь возникает проблема.Любая помощь приветствуется.

$(document).ready(function(){
    //connect to the socket server.
    var socket = io.connect('http://' + document.domain + ':' + location.port + '/test');
    var numbers_received = [];

    //receive details from server
    socket.on('newnumber', function(msg) {
        console.log("Received number" + msg.number);
        //maintain a list of ten numbers
        if (numbers_received.length >= 10){
            numbers_received.shift()
        }            
        numbers_received.push(msg.number);
        numbers_string = '';
        for (var i = 0; i < numbers_received.length; i++){
            numbers_string = numbers_string + '<p>' + numbers_received[i].toString() + '</p>';
        }
        $('#log').html(numbers_string);
    });

});

Я попытался изменить код «вести список из десяти чисел» (изменил 10 на другие значения, закомментировал), но ничего не изменилось на выходе.

1 Ответ

1 голос
/ 03 июня 2019

Попробуйте это:

$(document).ready(function(){
    //connect to the socket server.
    var socket = io.connect('http://' + document.domain + ':' + location.port + '/test');
    var numbers_received = [];

    //receive details from server
    socket.on('newnumber', function(msg) {
        console.log("Received number" + msg.number);
        $('#log').html(msg.number.toString());
    });

});
...