Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Проблема с созданием миниатюр фото товара


Recommended Posts

Добрый день, прошу помощи, у меня есть скрипт на php который добавляет товары с моими данными, отдельно от админки, все работает, но я столкнулся с проблемой создания кеша картинок товара разного размера, а именно с скоростью создания... Cкрипт загружает оригиналы картинок в папку image/catalog/demo/папка с id товара/картинки, затем при переходе по урл на страницу товара opencart начинает генерировать миниатюры в папку image/cache/catalog/demo/папка с id товара/картинки, и создание миниатюр занимает от 30 до 100+сек, в зависимости от размеров картинок, макс 5мб - 1 шт, и пока не создаст миниатюры - нельзя открыть страницу товара, т.к. блокируется запрос как я понял, и мне очень не нравится что так долго нужно ждать генерацию, т.к. я например создал товар, и заходит одновременно 5 пользователей, и не могут зайти на страницу товара, т.к. генерируются миниатюры достаточно долго. Подскажите пожалуйста, как можно ускорить данный процесс ? или только генерировать миниатюры сразу во время создания товара в бд и загрузки оригиналов? или возможно есть какая-то улучшенная библиотека для работы с изображениями. Так же у меня была мысль что такое долгое создание миниатюр из-за того что я загружаю оригиналы картинок товара с разбивкой по папками, а не все картинки в 1 папке как изначально создает опенкарт. Заранее спасибо за помощь и подсказки!

Надіслати
Поділитися на інших сайтах


Вообще странно. Сколько у Вас картинок в каждом товаре (в среднем)?
Зависит от хостера, конечно, но 100+ секунд - это что-то новое.
И да, если Вы единожды зашли в товар, то будут созданы "миниатюры" в папке cache, которые в последствии и будут использоваться для всех посетителей сайта. Т.е. задержка только для первого посетителя.
Но 100+ секунд. Может есть смысл сжимать изображения предварительно? Не пробовали? В тот же png (если нужен альфа канал) или лучше в jpg со сжатием 80-85, но размером не больше фуллашди (т.е. шириной не больше 1920). В таком случае изображения будут гораздо "легче".

  • +1 1
Надіслати
Поділитися на інших сайтах

Если у Вас шаред, да даже если не шаред, то 5мб большой размер. Кеш генерируется один раз. Достаточно одному человеку зайти, чтобы кеш сгенерировался, остальные уже получат кэшированные файлы. В одну папку все картинки не стоит сгружать, лучше разбивать по папкам.

  • +1 1
Надіслати
Поділитися на інших сайтах

22.06.2022 в 19:01, nogocuHoBuk сказал:

Вообще странно. Сколько у Вас картинок в каждом товаре (в среднем)?
Зависит от хостера, конечно, но 100+ секунд - это что-то новое.
И да, если Вы единожды зашли в товар, то будут созданы "миниатюры" в папке cache, которые в последствии и будут использоваться для всех посетителей сайта. Т.е. задержка только для первого посетителя.
Но 100+ секунд. Может есть смысл сжимать изображения предварительно? Не пробовали? В тот же png (если нужен альфа канал) или лучше в jpg со сжатием 80-85, но размером не больше фуллашди (т.е. шириной не больше 1920). В таком случае изображения будут гораздо "легче".

От 4 до 10 фото макс., 100 сек+ если оригиналы весят 3-5мб каждый...

Да, они раз генерируются и дальше сразу все работает, но вот в этой разовой генерации и проблема, т.к. может зайти в товар сразу 10 юзеров, и получат белый экран загрузки страницы, т.к.генерируются миниатюры 30-50 сек и больше, и я могу после добавления товара не сразу зайти для генерации миниатюр, и в итоге опять "лаг" будет у тех кто откроет товар первый раз после добавления на сайт...

Спасибо, выходит мое единственное решение такое ? - Во время загрузки оригиналов оптимизировать их, сжать чтобы уменьшить их размер, затем придумать функцию которая будет в этот же момент создавать миниатюры нужных размеров в папку cache, и по итогу когда я зайду первый раз на стр.товара то он сразу откроется без ожидания, по логике

Подскажите еще пожалуйста, есть ли готовая проверенная быстрая php библиотека которой я могу до загрузки на фтп оптимизировать оригиналы(сжать), и нарезать миниатюры в папку cache? Если да, поделитесь пожалуйста названием, я еще хочу прикрутить загрузку фото с перетягиванием из папок на пк и сразу с загрузкой картинок на ajax нашел такой плагин innostudio.de/fileuploader/#examples (не реклама), можно его использовать или есть лучше? мне важно чтобы была возможность загрузки на сервер на ajax сразу после выбора фото, сортировка, перетягивание или выбор + мобильная адаптивность, и проверка размера и формата фото в этом же плагине(помимо php), заранее спасибо!

Надіслати
Поділитися на інших сайтах


22.06.2022 в 19:04, ibond сказал:

Если у Вас шаред, да даже если не шаред, то 5мб большой размер. Кеш генерируется один раз. Достаточно одному человеку зайти, чтобы кеш сгенерировался, остальные уже получат кэшированные файлы. В одну папку все картинки не стоит сгружать, лучше разбивать по папкам.

Пока шаред, неплохой по характеристиками и не дешевый, но конечно же понимаю что хуже чем впс, как я понимаю все создания миниатюр мне нужно делать сразу во время загрузки оригиналов, чтобы потом товар первый раз сразу открывался без ожидания, т.к. как раз это первое открытие и долгое ожидание - создает проблему для юзеров, если бы еще генерация занимала 3-5 сект - то еще ладно, но 30-50 и 100+сек мало кто хочет ждать, а я банально после создания товара могу забыть зайти на его стр...Спасибо

Змінено користувачем AndreLisif
Надіслати
Поділитися на інших сайтах


22.06.2022 в 20:24, AndreLisif сказал:

создавать миниатюры нужных размеров в папку cache

Если с хостингом нет проблем и оригинальные изображения нормальные, то миниатюры создаются практически мгновенно. Не нужно самому в папку кэш ничего помещать. Сжимайте оригиналы и, думаю, всё решится само собой.
 

  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.