Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.09.2011, 16:58
Кандидат Javascript-наук
Отправить личное сообщение для nyols Посмотреть профиль Найти все сообщения от nyols
 
Регистрация: 16.02.2011
Сообщений: 134

Что же происходит на странице когда нас нет ?
Не знал как назвать тему, так что будем довольствоваться тем что есть

Очень часто происходят глюки в работе скриптов, когда мы находимся на другой вкладке а не на той где выполняется скрипт (обычно это анимация).

Вот маленький список тем с такой проблемой:
Подвисание работы скрипта
jquery, глюк с анимацией...
jquery слайдер, анимация при переключении вкладки
Баг со сменой окна.

Таких тем естественно больше.
Суть проблемы у всех одна:
Скрипт (как уже говорил обычно это анимация) начинает глючить если на какое то время перейти на другую вкладку и потом вернутся назад.

У меня тоже такая проблема была. К счастью я ее решил

Суть темы: Так что же на самом деле браузер делает с нашим скриптом когда мы не смотрим на страницу ?
Просто интересно.
Ответить с цитированием
  #2 (permalink)  
Старый 09.09.2011, 21:01
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от nyols
К счастью я ее решил
Сообщение от nyols
Так что же на самом деле браузер делает с нашим скриптом когда мы не смотрим на страницу ?
Так ты же решил - вот и поделись с обществом. А вообще, всем известно, что setInterval не вызывается в неактивной вкладке.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #3 (permalink)  
Старый 09.09.2011, 21:28
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Если анимация привязана к времени и используется "хвостовой таймер", а интервал просто запускает обработчик с шагом по изменению величины, то проблем быть не должно, я правильно понимаю?

И разве jQuery не использует window.requestAnimationFrame?

Последний раз редактировалось Андрей Параничев, 09.09.2011 в 21:30.
Ответить с цитированием
  #4 (permalink)  
Старый 09.09.2011, 22:39
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Андрей Параничев
И разве jQuery не использует window.requestAnimationFrame?
С 1.6 должна была использовать.
Оффтоп, но меня в анимации больше всего напрягает что нельзя гарантировать, что общее время анимации будет ровно столько, сколько нам надо. Всегда больше на несколько мс.
Мелочь, понимаю.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #5 (permalink)  
Старый 09.09.2011, 22:44
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

В версии 1.6.3 вроде убрали requestAnimationFrame

-----------
да точно убрали
Сообщение от jQuery blog
No more animation “worm holes”: We had high hopes for the browser’s requestAnimationFrame API when we added support into version 1.6. However, one of the highest-volume complaints we’ve received since then relates to the way requestAnimationFrame acts when a tab is not visible. All the animations initiated when the tab is invisible “stack” and are not executed until the tab is brought back into focus. Then they all animate at warp speed! We’ve removed support for this API (which has no impact on the way you call jQuery’s animation features) and plan to incorporate it into a future version of jQuery.
http://blog.jquery.com/2011/09/01/jq...-6-3-released/

Последний раз редактировалось Octane, 09.09.2011 в 22:46.
Ответить с цитированием
  #6 (permalink)  
Старый 09.09.2011, 22:50
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Да, надо его допиливать. У меня, на не самом последнем железе, это демо лагает 2-3 раза в секунду (последний FF).
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #7 (permalink)  
Старый 09.09.2011, 23:45
Кандидат Javascript-наук
Отправить личное сообщение для nyols Посмотреть профиль Найти все сообщения от nyols
 
Регистрация: 16.02.2011
Сообщений: 134

Сообщение от B~Vladi
Так ты же решил - вот и поделись с обществом.
Я использовал JQuery, и от избавления такого клюка перед вызовом новой анимации останавливать прежнею .stop() Хотя вроде и без этого работала, но была эта самая проблема. .stop() помог. А вот в чем была причина так и не понял.
Сообщение от B~Vladi
А вообще, всем известно, что setInterval не вызывается в неактивной вкладке.
Не знал)) именно используя setInterval я и делал анимацию.
Ответить с цитированием
  #8 (permalink)  
Старый 10.09.2011, 00:11
Аватар для crayday
Аспирант
Отправить личное сообщение для crayday Посмотреть профиль Найти все сообщения от crayday
 
Регистрация: 30.08.2011
Сообщений: 61

Сообщение от nyols Посмотреть сообщение
Не знал)) именно используя setInterval я и делал анимацию.
И jQuery делает также =)
setInterval вызывается на неактивной вкладке, но не чаще 1 раза в секунду (во современных браузерах).

Последний раз редактировалось crayday, 10.09.2011 в 00:14.
Ответить с цитированием
  #9 (permalink)  
Старый 10.09.2011, 00:57
Аватар для float
Профессор
Отправить личное сообщение для float Посмотреть профиль Найти все сообщения от float
 
Регистрация: 01.07.2010
Сообщений: 387

Цитата:
У меня, на не самом последнем железе, это демо лагает 2-3 раза в секунду (последний FF).
посмотри на сеттаймауте и всё поймёшь
зы зато в осле не лагает в смысле это не шутка...
Цитата:
да точно убрали
я тож пробовал заюзать, но там чот с отменой косяки...

Последний раз редактировалось float, 10.09.2011 в 01:06.
Ответить с цитированием
  #10 (permalink)  
Старый 10.09.2011, 01:29
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от nyols
А вот в чем была причина так и не понял.
Мораль: создавать велосипед - полезно.
Сообщение от crayday
setInterval вызывается на неактивной вкладке, но не чаще 1 раза в секунду (во современных браузерах).
Ну вот, опять всё поменяли
Сообщение от float
посмотри на сеттаймауте и всё поймёшь
И что я должен понять?
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли как-то сократить скрипт случайной цитаты (см. внутри)? Hyuga_Nia Общие вопросы Javascript 4 20.01.2011 22:00
Как (эффективно) изучать JavaScript? JSTalker Общие вопросы Javascript 33 23.12.2010 03:13
submit в iframe по событию change vovasvv jQuery 1 21.05.2010 09:37
JS меню работает на обычной html странице, а на юкозовском движке нет. adware Я не знаю javascript 10 16.05.2009 16:48
Сторонние библиотеки - быть или не быть? IIIEPJIOK Оффтопик 64 21.03.2009 19:39