У меня есть функция, которая выполняется во время поиска (она вызывается каждые 5 секунд). Пока он запускает «Извлечение результатов ...» Записывает на странице одно письмо за раз. Это работает нормально, но если пользователь переходит на другую вкладку, а затем возвращается, сообщение становится чем-то вроде: «Rvsei.tn.rg.i eRveisnugl tRse». Затем в течение следующих двух циклов оно возвращается к тому, что должно быть. Мне интересно, если есть способ, я могу просто перезапустить функцию, когда вкладка снова станет активной вкладкой. Хотя это забавно видеть это, это не то, что я намеревался. Здесь функция у меня есть:Пауза jquery Функция, когда вкладка не активна
var showText = function (target, message, index, interval) {
if (index < message.length) {
$(target).append(message[index++]);
setTimeout(function() { showText(target, message, index, interval); }, interval);
}
}
function Loading() {
$("#loading").html('');
showText("#loading", "Retrieving Results...", 0, 200);
}
Edit: Я интересно, если это что-то делать с функцией, которая вызывает функцию Загрузка. Я заметил, что это происходит только в том случае, если я нахожусь на другой вкладке, когда она должна обновляться, и чем дольше вы уходите, тем хуже это, что предполагает, что, возможно, когда вы вернетесь, она пытается вызвать загрузку столько раз, сколько предполагалось всем сразу. Это мой таймер:
var refreshInterval = 5 * 1000,
isDone = false;
if (!isDone) {
setTimeout(test_function, refreshInterval)
}
Так что, я думаю, мне нужно выяснить, как приостановить этот таймер onblur.
где вы сбрасываете индекс? вы говорите о вкладке jQuery или вкладке браузера? – Born2Code
При запуске функции индекс устанавливается равным 0. Я думаю .. –
@ChrisBuckley Piece at OP появляется, чтобы распечатать полное сообщение при переходе на другую вкладку, здесь http://jsfiddle.net/t6ouo762/. Если возможно, можно создать/изменить jsfiddle для воспроизведения «Rvsei.tn.rg.i eRveisnugl tRse»? Спасибо – guest271314