Вот мой текущий код:JQuery - переменная интервал
$(document).ready(function() {
// set variables
var delay = 3000;
setInterval(function() {
// perform AJAX call
var req = $.ajax({
url: "view/jquery/jq.refresh.php",
dataType: "json"
});
// process data from json
req.done(function(data) {
$("#now_playing").html(data.song);
$("#queue_list").html(data.queue);
delay = data.time;
});
}, delay);
});
... и это не работает, как и планировалось.
Идея состояла в том, чтобы получить переменную задержку (длину песни) из базы данных с помощью AJAX. И положите эту задержку (длину песни) на setInterval
, таким образом скрипт будет циклически переключаться с переменными интервалами в зависимости от длины воспроизводимой песни, что, надеюсь, снижает нагрузку на сервер/базу данных.
Я уверен, что правильное значение задержки получено из базы данных, так как добавление console.log(date.time);
показывает мне длину песни.
Одна теория У меня есть причина, почему мой код не будет работать, так как setInterval
считывает свое значение ms перед фактической обработкой кода внутри, поэтому он всегда установлен в 3000
. Другая теория заключается в том, что delay = data.time
не меняет значение delay
, потому что это глобальная переменная, установленная в начале скрипта.
Итак, какие параметры мне нужно для достижения переменного интервала без сбоев/замораживания браузера?