Поскольку для setInterval
нет стандарта, результат подачи строки в качестве первого параметра может отличаться в разных браузерах.Как MDC говорит :
code
в альтернативном синтаксисе, это строка кода, которую вы хотите выполнять повторно.
Этоповедение Firefox и Chrome демонстрирует.
С другой стороны, IE, вероятно, анализирует строку один раз и выполняет ее несколько раз.Это немного оптимизирует, но ваша функция будет вызываться с одним и тем же параметром каждый раз.
Более того, чтобы снова заключить MDC в кавычки
(Использование этого синтаксиса не рекомендуется дляте же причины, что и при использовании eval () )
Решение состоит в том, чтобы прочитать состояние Progress
в функции, которая вызывается повторно:
function progressStatus() {
var Progress = $('#Progress').val();
// Get our progress status
$.get('http://www.site.com/progress/'+Progress, { }, function (response) {
// ↑ don't!
// Eval our response
eval(response); // don't!
});
}
Таким образом, вы можете просто позвонить
setInterval(progressStatus, 1000);
Но опять же, используя изменяемое пользователем поле ввода в URL (Progress
) и eval
для анализа (?) Ответа без какой-либо проверки: очень небезопасно .Вам, вероятно, следует использовать переменную внутри замыкания для maintian Progress
(кроме показа ее пользователю).