Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 10.05.2012, 15:02
Интересующийся
Отправить личное сообщение для aphextwin Посмотреть профиль Найти все сообщения от aphextwin
 
Регистрация: 10.04.2012
Сообщений: 11

Сообщение от vadim5june Посмотреть сообщение
почитайте вот здесь
http://habrahabr.ru/post/114358/
Это немного не то. Я не хочу что-то двигать каждые 100 мс. Я хочу чтобы раз в 10-30 секунд выполнялось определенное действие.
Ответить с цитированием
  #12 (permalink)  
Старый 10.05.2012, 16:17
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

можешь засечь промежутки между срабатыванием таймера,
это даст пищу для размышлений.
Посмотри как ведёт себя обработчик когда тебя нет на странице, и как ведёт себя в момент переключения.

<script>
//глобальная переменная
var oldTime;

f=function(){
//внутри обработчика
   var d = new Date(),time=0;
   time=d.getTime();

   // результат смотреть будем в консоли
   console.log(d.toLocaleTimeString(),"=",time-oldTime);

   //выведем на экран, для наглядности на форуме
   window.document.write(d.toLocaleTimeString()+"="+(time-oldTime)+"<br/>");
   oldTime=time;
   setTimeout(f,1000);
}
f();
</script>
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 10.05.2012 в 16:40.
Ответить с цитированием
  #13 (permalink)  
Старый 10.05.2012, 17:34
Интересующийся
Отправить личное сообщение для aphextwin Посмотреть профиль Найти все сообщения от aphextwin
 
Регистрация: 10.04.2012
Сообщений: 11

Щас попробовал выводить только время срабатывания. Действительно, работает и в фоне, без каких либо проблем.
Я пришел к мысли, что это тормозит jquery, при переключении слайдов у меня используются методы fadein() и fadeout() видимо jq не выполняет их в фоне (что в принципе логично), а накапливает их где то в своем кеше. Как с этим бороться я не представляю. м.б. есть какие то настройки библиотеки, для регулирования таких ситуаций?
Ответить с цитированием
  #14 (permalink)  
Старый 10.05.2012, 17:46
Интересующийся
Отправить личное сообщение для aphextwin Посмотреть профиль Найти все сообщения от aphextwin
 
Регистрация: 10.04.2012
Сообщений: 11

хех. победил это )
перед запуском анимации проверяю состояние state, которое устанавливается так:

$(window).blur(function(){
    state = 0;   
});

$(window).focus(function(){
    state = 1;    
});
Ответить с цитированием
  #15 (permalink)  
Старый 10.05.2012, 17:51
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

хз, но как вариант можно попробывать определять активность страницы.
Если страница активна тогда таймер работает, если не активна тогда таймер неработает

$(window).blur(function() {
    // здесь унечтожим таймер 
   clearTimeout(timeOut );
});
$(window).focus(function() {
   // здесь запустим функцию 
   autoAdvance();
 
});

блин на секунду опаздал))
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 10.05.2012 в 17:59.
Ответить с цитированием
  #16 (permalink)  
Старый 10.05.2012, 18:02
Интересующийся
Отправить личное сообщение для aphextwin Посмотреть профиль Найти все сообщения от aphextwin
 
Регистрация: 10.04.2012
Сообщений: 11

Сообщение от DjDiablo Посмотреть сообщение
$(window).focus(function() {
   // здесь запустим функцию 
   autoAdvance();
 
});
А вот тут у вас ошибочка, на которую я и сам напарывался уже ))))
Дело в том, что событие $(window).focus происходит не однократно, при получении фокуса, как мы с вами подумали, а постоянно. Именно поэтому я сделал через переменную состояния )

Ради эксперимента можете вызвать алерт из $(window).focus и посмотреть что выйдет )
Ответить с цитированием
  #17 (permalink)  
Старый 10.05.2012, 18:38
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

написал простейший слайдер с помощью setTimeout и не вижу никаких проблем о которых говорится в постах
Или неправильно смотрю?
http://all-html5.narod.ru/sliders/0/slider.htm
Ответить с цитированием
  #18 (permalink)  
Старый 11.05.2012, 05:36
Интересующийся
Отправить личное сообщение для aphextwin Посмотреть профиль Найти все сообщения от aphextwin
 
Регистрация: 10.04.2012
Сообщений: 11

Сообщение от vadim5june Посмотреть сообщение
написал простейший слайдер с помощью setTimeout и не вижу никаких проблем о которых говорится в постах
Или неправильно смотрю?
Насколько я понял накапливаются вызовы не setTimeout, а методов fadein-out у jquery
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некорректное поведение браузера в слайдере контента deepslam jQuery 1 07.07.2011 15:55
Загадочные тормоза в скрипте. iam_weasel Ваши сайты и скрипты 10 13.11.2010 11:34
тормоза jquery.ui.sortable в IE8 varanio jQuery 0 02.06.2010 10:12
Тормоза при получении offsetHeight/clientHeight kidar2 Events/DOM/Window 2 18.05.2010 09:05
Тормоза в ИЕ раскрывающегося списка Bekass Элементы интерфейса 1 04.12.2009 16:38