Я не уверен, почему моя функция работает только один раз. В основном в моем JSON, GhStatus и CsStatus оба значения имеют значение 0, поэтому я ожидаю, что предупреждение отключится дважды, сказав «сбой».Функция успешно запускается один раз, а затем прерывается непрерывно
Однако этот набор предупреждений появляется только один раз. Затем в соответствии с инструментами разработчика Chrome, я получаю ошибки каждые 2 секунды говоря:
Uncaught SyntaxError: Unexpected identifier
Однако выход не указывает, где в коде это происходит = [
$(document).ready(GrabGhCsStatus());
function GrabGhCsStatus() {
var url = '@Html.Raw(Url.Action("index","GhCs"))';
window.setInterval(
$.get(url,function(data) {
if (data.GhStatus == 0) {
$('#GhCsStatus_CS').buttonMarkup({ icon: 'myapp-cs' });
alert('crash');
}
else {
$('#GhCsStatus_GH').buttonMarkup({ icon: 'myapp-gh' });
alert('running');
}
if (data.CsStatus == 0) {
$('#GhCsStatus_CS').buttonMarkup({ icon: 'myapp-cs' });
alert('crash');
}
else {
$('#GhCsStatus_GH').buttonMarkup({ icon: 'myapp-gh' });
alert('running');
}
}, "json"), 2000);
}
ли способ, которым я отформатировал этот код или где я помещал функцию, влияющую на выход?
В дополнение к нижеследующим ответам было бы безопаснее использовать setTimeout, а не setInterval. –
Я прочитал документацию для setTimeout, и я думаю, что она говорит, что эта функция создает дополнительную задержку. Я пытаюсь повторно запустить код каждые 2 секунды, чтобы сравнить, не забудьте ли мои данные JSON не изменяться. – Liondancer
Правильно, но если вы сделаете это с помощью setInterval, и запрос займет больше 2 секунд (что не редкость, сеть проблемы происходят все время), это может привести к сбою браузера с течением времени. использование setTimeout может выполнить ту же цель без этой возможности, потому что она не отправит следующий запрос до тех пор, пока предыдущий не завершится. –