Ответ 1
Я думаю, что viewbox на самом деле будет быстрее в реальном мире, а метка производительности указывает противоположную информацию.
Некоторое время науки:
Я создал jsPerf: http://jsperf.com/transform-scale-vs-viewbox-scale
jsPerf, кажется, дает мне неправильные цифры, как долго проходили тесты, поэтому искажая результаты, но это очень точно: код для теста преобразования короче, имеет 0 строковых манипуляций и работает больше раз за меньшее время.
- Масштаб преобразования: выполняется в 150 тыс. раз
- Модификация ViewBox: 90 тыс. раз
Ясно, что масштаб преобразования выполняется быстрее. Код выглядит быстрее, тест прерывается, но наблюдение за прогонами показывает больше прогонов для преобразования. Тем не менее, я все еще чувствую, что viewbox быстрее в реальном мире.
Почему?
- В любом случае я хочу сохранить отдельный объект, указывающий текущее состояние моего окна просмотра. Этот отдельный объект полезен для обновления слайдера диапазона или некоторого индикатора текущего уровня масштабирования. Запись в окно просмотра легко после вычисления этого.
- Панорамирование еще нужно коснуться DOM.
- Часто при масштабировании вам также нужно панорамировать для повторного использования, что означает, что вам все равно нужно возиться с viewbox.
- Это не повлияет на производительность, поскольку вы можете выполнять так много операций в секунду.
Заключение: компьютеры бывают быстрыми; использовать viewbox; его меньшая работа; оптимизация здесь, вероятно, не даст вам огромных успехов в производительности.