Firefox / Opera Slow Page Paint

Я только что закончил разработку этой страницы-заставки для своего стартапа: http://beta.mergenote.com/.

Время загрузки и первоначальный рендеринг невелики во всех браузерах, которые я тестировал. (Я не смотрел ни на какие версии IE, но отправил его друзьям, которые все считали, что он достаточно похож на Chrome, они ничего не заметили ... хотя они не веб-разработчики, поэтому, если вы заметите что-то, дайте мне знать).

Веб-страница использовала jQuery для простого слайд-шоу, а для прокрутки параллакса использовала skrollr https://github.com/Prinzhorn/skrollr

Он использует спрайт SVG, ширина и высота которого были установлены в 3 раза больше самого большого отображаемого размера любого из его значков (из-за проблемы с рендерингом Opera и Firefox, когда SVG не перерисовываются в их окончательном размере).

В Chrome/Safari сайт работает плавно, быстро, без проблем. В Firefox и Opera (и особенно в Firefox) перерисовка страницы при изменении размера или прокрутке занимает очень много времени, а анимация очень прерывистая.

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

Любые идеи?


person runspired    schedule 29.07.2013    source источник


Ответы (1)


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

Даже если в область просмотра попадает один SVG, страница сразу начинает тормозить.

Он использует спрайт SVG, ширина и высота которого были установлены в 3 раза больше, чем самый большой отображаемый размер любой из его иконок.

Не могли бы вы уточнить? Этот SVG имеет размер 2250 на 10350 пикселей. Для растеризации потребуется огромный объем оперативной памяти. Можно и 225х1035.

person Prinzhorn    schedule 30.07.2013
comment
Причина, по которой SVG такой большой, заключается в проблеме рендеринга как в Firefox, так и в Opera, которые растеризируют SVG в исходном размере, а не повторно растрируют после масштабирования. - person runspired; 30.07.2013
comment
Только пара значков действительно должны быть такими большими, поэтому я работаю над переделкой макета спрайта с учетом этого, должен получиться размер 1500 x 300 пикселей, если я правильно рассчитал. - person runspired; 30.07.2013
comment
Для изображений, которые вам не нужно динамически масштабировать, вы должны просто использовать спрайт PNG с точными размерами, которые вам нужны. - person Prinzhorn; 30.07.2013
comment
Для различных мобильных версий + изменение размера логотипа эти изображения масштабируются, поэтому я не использовал спрайт PNG. Я хотел попробовать один спрайт на этот раз вместо спрайтов на основе определения разрешения. Я не новичок в этой игре, просто пробую что-то новое со спрайтами SVG и новичок в отладке поддержки SVG (что было головной болью опыта). :) Удивительная работа, которую вы проделали со скроллром, спасибо! - person runspired; 30.07.2013