Задача: Нужно обновлять блок каждые N секунд. Перед ajax запросом происходит анимация, после получения данных тоже анимация. Блок исчез -> обновил данные -> появился -> N секунд -> рекурсия.
Возникающая проблема: открывается хром последней версии, всё работает хорошо, если открыть другую вкладку на пару минут (в то время на прошлой вкладке выполнится несколько итераций-обновлений блока), далее возвратимся на предыдущую вкладку, то увидим как блок колбасит и анимация — как тот басист из анекдота «фу-х, успел..» один за другим выполняется fadeout-fadein-fadeout-fadein-итд, которые по идее должны были выполниться в бекграунде. Дебагер хрома показывает, что ajax-запросы идут как надо — раз в N секунд. Проблема существует в chrome и firefox.
Код примерно такой:
function getContent(element) {<br/>
$.post("/random-clients-or-team.php", { random: "clients" }, onAjaxSuccess);<br/>
function onAjaxSuccess(data) {<br/>
$(element).fadeToggle(1000);<br/>
$(element).queue(function () {<br/>
$(element).empty().prepend(data).delay(300);<br/>
$(element).fadeToggle(1000);<br/>
$(element).dequeue();<br/>
});<br/>
if (element == '.random-clients-content') {<br/>
setTimeout("getContent('.random-clients-content');", 10000);<br/>
}<br/>
}<br/>
}<br/>
getContent('.random-clients-content'); <br/>
В чём проблема и как её исправить?