Как я могу непрерывно запускать функцию после добавления данных и завершения работы с этими данными

0

Еще новичок в JS и jQuery, и я считаю, что это простое решение проблемы, с которой я сталкиваюсь. У меня есть функция, которую я запускаю после того, как документ готов, эта функция исчезает в данных, затем исчезает, но когда она достигает конца этих результатов, ничего не появляется. Я просто хочу использовать эту функцию, чтобы эти результаты постоянно отображались. Я, наверное, сделал этот звук намного более запутанным, чем нужно, поэтому вот что у меня есть.

    function shuffle(array) {
        var currentIndex = array.length;
        var temporaryValue;
        var randomIndex;
        while (0 !== currentIndex) {
            randomIndex = Math.floor(Math.random() * currentIndex);
            currentIndex -= 1;
            temporaryValue = array[currentIndex];
            array[currentIndex] = array[randomIndex];
            array[randomIndex] = temporaryValue;
        }
        return array;
    }

    var feedbackContainer = $(".feedback-container");
    var feedbackMessage;

    function getData(data) {

        if (data.ok) {
            var dataResults = shuffle(data.results);
            for (var i = 0; i < dataResults.length; i++) {
                feedbackMessage = dataResults[i].message;
                if(feedbackMessage) {
                    var review = $("<p />").text(feedbackMessage);
                    feedbackContainer.append(review);
                }
            };
        }
    }

    $(function(){
        $('.feedback-container p').each(function(index) {
            $(this).delay(7000*index).fadeIn(1000).delay(5000).fadeOut(1000);
        });
    })
Теги:
function

1 ответ

1
Лучший ответ

Если я правильно понимаю вас (иногда я немного замешан на восприятии), есть несколько простых способов сделать цикл функций. У одного из них есть вызов функции в конце.

function foo() {
    // Do a bunch of stuff
    foo();
}

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

var bar = setInterval(foo, 1000); //runs every second

clearInterval(bar); //when you want it to stop

Надеюсь, это поможет

Вы можете создать функцию цикла, которая вызывает вашу getData и рисует многократно. Поэтому скажите, что вы устанавливаетеInterval на эту функцию, называемую loop.

function loop() {
    getData(); //So you know the data is up to date.
    drawData(); //Your fadeIn/fadeOut script.
    //And if necessary 
    clearData();
}

Это будет проходить через получение данных и их отображение. Это помогает?

  • 0
    Что, если бы я хотел бесконечный цикл, чтобы он постоянно извлекал и выводил данные из памяти. Буду ли я выполнять функцию обратного вызова после завершения функции getData?
  • 0
    Сделал быстрое дополнение. Это ответило на ваш вопрос?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню