Я создал анимацию, которая основана на следующих функциях jQuery: hide(), show(), animate().Оптимизация анимации на основе JQuery с помощью результата селектора кеширования?
Эта анимация потребляет много CPU (как использование процессора как процессора), Chrome сообщает мне, что (через инструмент профилирования селектора CSS), что у меня есть много похожих селекторов CSS (профиль селектора CSS).
Являются ли эти селекторы теми, которые используются только механизмом рендеринга? Включает ли это также поиск узла jQuery при использовании $() (предположил, что он вызывается hide(), show() или animate())?
Если да, то второй вопрос, как я могу переопределить эту функцию для кэширования некоторого узла? (путем жесткого кодирования нескольких селекторов, результат которых не изменится в моих анимационных логиках).
EDIT: Я осуществляет переход между кадрами, каждый кадр как эффект Кена Бернса на его фоне
EDIT2: вот плагин JQuery, который с помощью CSS3 для анимации, когда это возможно https://github.com/benbarnett/jQuery-Animate-Enhanced
Если вы беспокоитесь о производительности, я думаю, вы должны принять во внимание идею использовать CSS3 переходы/анимацию для достижения некоторых эффектов, так сделайте работу GPU вместо CPU – fcalderan
. Более важным является назначение селектора переменной и использование переменной вместо повторного запуска селектора. Отображение вашего кода поможет немного определить некоторые возможности оптимизации. –
@ F.Calderan +1 Я не знал, что CSS3 использует графический процессор, что хорошо знать. Я собираюсь попробовать этот подход, но для сложной анимации это может быть невозможно. – AsTeR