Преимущество метода 1 заключается в том, что вы не будете рисковать одновременным изменением размера одного и того же изображения и что вы можете быстро предоставить версию для отображения вашему пользователю.
Но почему ваш диск будет работать быстро, если вы заранее определите размер изображений? Это произойдет, если вы измените их размер до любого возможного размера, так что это не очень хорошая идея.
Способ 2 более гибкий. Вы просто запрашиваете изображение в заданном размере, и ваш скрипт будет производить его на лету. Конечно, это немного медленнее, но вы можете кэшировать измененное изображение, чтобы посетители быстро отображали изображения, если только они не являются первыми, кто запрашивает изображение определенного размера.
Мое предложение: Если вы знаете, какие размеры вы используете на своем сайте, вы можете использовать эти размеры для изменения размера изображений на ранней стадии. Вы даже можете создать конфигурацию на своем веб-сайте с кучей предопределенных размеров изображения, которые вы можете использовать на своем веб-сайте, и использовать те же конфигурации для масштабирования изображений при их загрузке. Это имеет некоторые преимущества:
Имея ограниченный набор размеров, вы увеличите вероятность попадания в кеш, когда посетители просматривают ваш сайт. Например, если вы покажете изображение X на странице подробностей X, а на обзорной странице, включающей X, результаты поиска и т. Д., И каждая из этих страниц использует немного другой размер, это пустая трата дискового пространства и пропускной способности.
И если размер диска является проблемой, ограниченное количество размеров также ограничивает дисковое пространство, которое потребляют кэшированные версии этих изображений.
Кроме того, если вы измените или добавите измерение, вы можете сразу создать все изображения такого размера, чтобы посетители могли сразу воспользоваться версией кэшей. И, конечно же, это также облегчает очистку кеша для изображений измерения, которое больше не находится в списке, если вы его удалите или измените.
Если вы выберете этот метод, он очень легко реализует метод 1 и предварительно кэширует все, но даже если вы выберете метод 2 (если только в качестве резервной копии, если кешированная версия не существует), то все же это принесло бы пользу.