Определенные размеры изображения, сгенерированные PHP - PullRequest
0 голосов
/ 28 сентября 2011

Как мы знаем, если мы укажем атрибуты width и height в элементе <img />, браузер может сразу найти изображение в визуализированном макете. Это не очень большой прирост скорости, но это действительно хорошая практика оптимизации.

Хорошо, но иногда изображение имеет разные размеры. Таким образом, мы можем получить его с помощью функции PHP getimagesize().

И вот вопрос: если у нас нет конкретных измерений, стоит ли использовать PHP? Конечно, нам нужно написать дополнительный код, но если мы справляемся с галереей, мы так или иначе используем PHP, так что в этом случае это всего 2 строки кода.

Каково ваше мнение?

Ответы [ 4 ]

0 голосов
/ 28 сентября 2011

Функция getimagesize () пытается анализировать размер изображения из файла каждый раз, когда вызывается ваш PHP.Таким образом, в основном вместо одного поиска диска у вас есть два (плюс разбор - если вы анализируете какой-то огромный видеофайл вместо изображения, это может быть буквально секундами).

У меня лично есть CMS, которая читает размер изображения только при загрузке изображения, а затем сохраняет его в БД с другими данными, поэтому дополнительный доступ к диску не требуется.Конечно, это может быть излишним для вас - YMMV.

Лучший совет: протестируйте его.Это простой тест, и он даст вам наиболее актуальный ответ.

0 голосов
/ 28 сентября 2011

Вы должны понимать, что getimagesize вызывает чтение ввода-вывода (если вы не выполняете чтение больших двоичных объектов из базы данных, тогда все в порядке). Итак, вы удвоили количество операций ввода-вывода только для загрузки изображений. Компьютеры, как правило, достаточно быстрые, так что вычисление ширины и высоты изображений для браузеров не представляет особой проблемы.

Опять же, у вас есть другие места для оптимизации:

  • спрайтов
  • размещение ресурсов в CDN вместо приложения
  • подтвердите ваш код

Я думаю, что в целом это нецелесообразно, потому что это создает больше неэффективности, которую он оптимизирует.

0 голосов
/ 28 сентября 2011

Ну, я никогда не беспокоюсь.И, честно говоря, большинство сайтов также не беспокоятся.Дело в том, что браузеру не нужно загружать все изображение, чтобы получить его размеры.Большинство форматов изображений имеют размер изображения в заголовке файла.поэтому, как только браузер получил первые несколько байтов файла, он уже знает, каковы размеры.

0 голосов
/ 28 сентября 2011

Это зависит от того, что вы пытаетесь сделать. Размеры тега <img/> имеют следующие преимущества:

  1. Браузер знает место, которое можно зарезервировать для изображения при его загрузке. Это означает, что ваш макет не будет прыгать вокруг при загрузке изображений.
  2. Это избавляет браузер от выполнения перекомпоновки и перерисовки после загрузки изображений (оптимизация скорости).
  3. Размеры будут доступны для любой обработки Javascript, как только HTML завершит загрузку.

С другой стороны, добавление размеров увеличит размер страницы и увеличит пропускную способность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...