Кадров в секунду для анимации на основе Javascript?

Я работаю над сайтом, который довольно сильно злоупотребляет Javascript для некоторых постоянных эффектов анимации; а именно прокрутка фонов. При максимальном запуске в Firefox 3.6.13 с разрешением 1920x1080 кажется, что он отстает, а иногда и немного скачет. Однако при работе с меньшим размером (измененный на 50%-75%) он очень плавный.

Мне просто интересно, можно ли получить количество отброшенных процессов или, грубо говоря, FPS, на котором работает данная анимация. На самом деле анимация управляется window.setInterval() с задержкой 10 (1/100 секунды).


person Dan Lugg    schedule 05.01.2011    source источник


Ответы (1)


http://forum.jquery.com/topic/why-jquery-uses-77-fps-by-default-in-animation

Спасибо Google за ссылку :)

person benhowdle89    schedule 05.01.2011
comment
Спасибо, benhowdle89; Отличная информация, я обязательно поиграю со свойством interval, чтобы увидеть, есть ли какой-либо выигрыш в качестве анимации для анимации на основе jQuery. Тем не менее, я все же хотел бы знать, можно ли получить количество отброшенных итераций setInterval, поскольку рассматриваемая анимация на самом деле не основана на jQuery. Я изменю свой вопрос по актуальности. - person Dan Lugg; 05.01.2011
comment
нельзя ли сделать что-то вроде PHP, если (!setInterval)? - person benhowdle89; 05.01.2011
comment
@benhowdle89; Хотите уточнить if(!setInterval)? - person Dan Lugg; 05.01.2011
comment
Ну, в PHP вы можете проверить, не произошло ли что-то или не произошло (используя ! перед чем-то), так что, возможно, есть способ сделать то же самое в JS. Поэтому проверьте, не сработал ли setInterval, и добавляйте к счетчику каждый раз, когда он терпит неудачу, чтобы вы могли, по крайней мере, увидеть, сколько раз он терпит неудачу. - person benhowdle89; 05.01.2011
comment
Хм, так что, возможно, другая функция зарегистрирована в setInterval, но с задержкой 1 (1 мс), которая проверяет, сколько раз запускалось мое событие анимации? Я посмотрю на это. - person Dan Lugg; 05.01.2011
comment
да я бы пошел на это. Кстати, чертовски быстрая анимация ;) - person benhowdle89; 05.01.2011
comment
Это, кажется, сделало свое дело. Добавив eFired++ к обработчику анимации и дополнительный обработчик setInterval, который каждую секунду выгружает и сбрасывает eFired, я вижу большую разницу. ~23 при разрешении 1920x1080. ~42 при разрешении 960x1080. +70 при очень маленьком (непригодно маленьком). - person Dan Lugg; 05.01.2011