Это известная функция.Для сохранения ресурсов Chrome не обновляет окно без фокуса :) Например, вы можете проверить, что это окно потеряло фокус и остановить таймер.Запустите его снова, когда окно находится в фокусе.Например:
var timer = null;
var logo = $("#blinking-logo");
function logo_blink() {
if(timer) clearTimeout('timer');
logo.fadeOut(10).delay(10)
.fadeIn(10).delay(20)
.fadeOut(10).delay(10)
.fadeIn(10)
timer = window.setTimeout(logo_blink, (Math.random()*(1500))+1500);
}
logo_blink();
$(window).blur(function(){clearTimeout(timer); timer = null;});
$(window).focus(function(){if (!timer) timer = window.setTimeout(logo_blink, (Math.random()*(1500))+1500);});
Примерно так.На одной из моих страниц с анимацией a была та же проблема с setInterval, поэтому я просто приостановил ее, когда страница была в фоновом режиме.*
ps: код обновлен с оптимизацией, обсужденной ниже.