Jump to content
iga8

[Решено {фантазия}] Кеширование картинок - проблема

Recommended Posts

Проблема такая! Если мы добавим одну картинку в описание товара, то эта картинка размножаться на несколько маленьких картинок. Основная картинка попадёт в папку image, а размноженные картинки в папку image/cache и image/cache/data. На одну картинку приходится до 10 размноженных. Это значит, что если будет 1000 товаров с основными картинками, то добавиться 10 000 размноженных. Размноженные картинки можно смело удалять - сайт будет работать нормально. Но они будут заново генерироваться, когда кто-то зайдет на сайт для просмотра товара. Это является большой проблемой в опенкарт у кого хостинг не резиновый. И единственный способ избавиться от этой проблемы является - удаление картинок через определённый промежуток времени с помощью команды Cron. Например я хочу чтобы эти картинки удалялись через каждый час. Посетитель зайдет, сгенерируются картинки, и через час эти картинки удаляться. Вопрос: как настроить cron что бы он уделял картинки из папки через определённый промежуток времени.

 

P.S. - если мы создадим простой html документ и загрузим на сервер одну картинку, то мы можем вставить в документ данную картинку неограниченное число раз и в разных размерах. То есть, мы можем 10 раз указать путь к картинке в документе, и картинка будет одна. Почему такое нельзя сделать в опенкарт?

Share this post


Link to post
Share on other sites

:?

вы смысл кеширования понимаете?

 

не нужно удалять картинки из кеша - если только у вас они все сразу не поменялись

структура opencart в этом плане вполне неплоха - он из основной картинки создает и помещает в кеш картинки, настройки размеров которых заданы в админке

 

например - в каталоге картинка 100х100, в карточке товара - большая, 400х400, в корзине 40x40 и тд

при просмотре проверяется, есть ли нужная картинка такого размера, если нет - создается, если есть - берется из кеша (т.е. не нужно тратить время на ее создание)

уровень сжатия позволяет сохранить картинку нужного размера с небольшим весом и практически незаметной потерей в качестве.

 

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

 

представьте, что у вас оригинальная картинка занимает 100кб.

и если отказаться от кеша - каждый раз, вне зависимости от нужного размера будет загружаться именно картинка 100кб.

например, для показа в корзине картинки 40x40 (занимающей обычно около 5кб в кеше) будет грузиться 100кб.

а если в корзине 10 товаров? это грузить 1МБ только для показа корзины!

 

старайтесь чтобы хотя бы часть размеров картинок совпадала - например для корзины и просмотра в админке укажите одинаковые размеры, тогда и картинка одна будет использоваться

не грузите на сайт изображения более 150кб, используйте сжатие и обработку в графическом редакторе.

 

ну и ключевой момент - вы с магазина планируете прибыль получать? если да - место на хостинге не должно быть проблемой

Share this post


Link to post
Share on other sites

Сделано очень глупо! Почему нельзя было стандартно - там где вывод картинок указать пути, а в css задать размеры ширину и высоту. И тогда одна картинка выводится во многих местах - и не дробиться.

  • +1 1

Share this post


Link to post
Share on other sites

Сделано очень глупо! Почему нельзя было стандартно - там где вывод картинок указать пути, а в css задать размеры ширину и высоту. И тогда одна картинка выводится во многих местах - и не дробиться.

как вы внимательно читали оратора выше :)

Share this post


Link to post
Share on other sites

Как и положено время от времени,должен  появляться миссия от опенкарта,который откроет глаза заблудшим овцам и покажет мир  таким какой он есть на самом деле.

 

3387303_original.jpg

 

Основная картинка попадёт в папку image, а размноженные картинки в папку image/cache и image/cache/data. На одну картинку приходится до 10 размноженных. 

 

 

:ugeek:

 

Хотя больше похоже на паранойю.

 

Вам однозначно нужно забить на всём что касается опенкарт ,как движка.И тогда не будет причин  для столь неистового  возмущения .

 

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

  • +1 2

Share this post


Link to post
Share on other sites

как вы внимательно читали оратора выше :)

 

больше столько много букв писать не буду! :-D

Share this post


Link to post
Share on other sites

 

Сделано очень глупо! Почему нельзя было стандартно - там где вывод картинок указать пути, а в css задать размеры ширину и высоту. И тогда одна картинка выводится во многих местах - и не дробиться.

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Народ, мне просто интересно, я даже не собирался так делать, ногами не бейте )
А что будет, если грохнуть image/catalog ? все равно же используется кэш, зачем оставлять оригиналы? у меня эта папка занимает 7 gb памяти, скоро будет все 12. Ну или скачать на комп, а с сервера грохнуть? 

Что скажут знатоки?

Share this post


Link to post
Share on other sites

По аналогии можно выстрелить в ногу....Ну или уши отморозить на зло бабушке.

По сути не нужно искать ,что грохнуть ради экономии,нужно задуматься о расширении возможностей хостинга.

  • +1 1

Share this post


Link to post
Share on other sites
1 час назад, DiNoZavr сказал:

А что будет, если грохнуть image/catalog ? все равно же используется кэш, зачем оставлять оригиналы?

это как отксерить паспорт и выбросить оригинал

 

будет работать ровно до того момента, пока не понадобится именно оригинал

например для создания изображения с размерами, отсутствующими в кеше

  • +1 2

Share this post


Link to post
Share on other sites

Беда не в том, что генерируются файлы в папку, а в том что создаются огромные файлы.

Например, создался  в папке файл размером 1,9 мБайт, я сжал сервисом его tinypng.com  файл стал весить 54кБайт.

 

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

 

 

eva-2mm-belui-700x700.png

Share this post


Link to post
Share on other sites

используйте формат jpg вместо png, там где он дает выигрыш

плюс изначально обрабатывайте оригиналы

 

как вариант, есть такой модуль

 

Share this post


Link to post
Share on other sites

Еще одна сторона вопроса имеется. Ограничение на хостинге не по объему, а по количеству файлов на логине. И там тоже натыкаемся на проблему большого количества файлов, которые плодятся при большем пользовании сайтом и приближаются к критическим максимально допустимым хостером значениям.

Share this post


Link to post
Share on other sites
19 минут назад, Shar сказал:

Ограничение на хостинге не по объему, а по количеству файлов на логине

 

чисто из любопытства - а если у вас каждый файл по 10гб будет? хостер не возражает? ;)

ищите нормальный хостинг

Share this post


Link to post
Share on other sites

Наш хостер сильно возражает, у нас 30 гигов место а по кол-ву файлов 500 тыс. всего. Для нашего небольшого магазина это уже огромные напряги. Всю голову сломал как быть. Менять хостера это конечно вариант. Но пока не встретил альтернативы достойной... может плохо ищу...

Share this post


Link to post
Share on other sites

Подскажите пожалуйста.

с папки image/cache были удалены некоторые картинки.

Теперь на странице категорий сайте нет некоторых картинок товаров. В карточке товар есть.

Я та понимаю, что не хватает некоторых ресайзов. Как мне их востановить? Или может подскажите как запустить кеширование принудительно?

Share this post


Link to post
Share on other sites
3 часа назад, vkravez сказал:

с папки image/cache были удалены некоторые картинки.

Теперь на странице категорий сайте нет некоторых картинок товаров. В карточке товар есть.

Я та понимаю, что не хватает некоторых ресайзов. Как мне их востановить?

 

если вы сами оригиналы из image не трогали - движок при просмотре страниц автоматом создаст картинки нужных размеров в кеше

выше все это обсуждалось

Share this post


Link to post
Share on other sites
20 часов назад, AlexDW сказал:

 

если вы сами оригиналы из image не трогали - движок при просмотре страниц автоматом создаст картинки нужных размеров в кеше

выше все это обсуждалось

Вопрос решен.
Все было банально просто. Нашел какие картинки не кешируються и скачал оригиналы. Выяснолось, что картинки были 2500х3700 пикс.  Исправил на 500х1500 и все ок.

 

Share this post


Link to post
Share on other sites

Всем привет.

К примеру у меня оригинал изображения 800х500 весит 50 Кб.

В кэше это изображение с этим же размером 800х500 создается с размером в 130 Кб.

Почему так? У всех так? 

jpg

Edited by roman409

Share this post


Link to post
Share on other sites
1 час назад, roman409 сказал:

Всем привет.

К примеру у меня оригинал изображения 800х500 весит 50 Кб.

В кэше это изображение с этим же размером 800х500 создается с размером в 130 Кб.

Почему так? У всех так? 

jpg

 

Странно, но не реагирует на изменения в строке:

public function save($file, $quality = 90) {

 

Ниже заменил $quality на 90

и размер изображения в кэше стал почти 1:1 к оригиналу:

if (is_resource($this->image)) {
            if ($extension == 'jpeg' || $extension == 'jpg') {
                imagejpeg($this->image, $file, 90);

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By Verwolf
      Простой модуль, позволяющий автоматизировать процесс очистки кэша сайта.
       
      Позволяет освободить дисковое пространство на хостинге за счёт удаления закэшированных данных модулей и расширений, которые не используются.
       
      Очистка кэша запускается автоматически при следующих действиях в админке:
      отключение модификации; удаление модификации; удаление какого-либо расширения (из любой категории).  
      Также данный модуль способствует увеличению производительности сайта в целом и уменьшает время ответа сервера за счёт уменьшения запросов к не используемым файлам кэша.
       
      Производит очистку:
      системного кэша OpenCart; кэша изображений.  
      Более подробно о назначении каждого Вы можете прочитать по ссылке - http://cccp-blog.com/opencart/kak-v-opencart-ochistit-kehsh
       
      Очистка кэша запускается при каждом удалении расширеания и модификации через админку. Также после установки доступна возможность очистки кэша вручную, не дожидаясь удаления модулей, с помощью кнопки Clear Cache в боковом меню панели администратора в меню System.
       
      При установке пользуйтесь инструкцией, описанной в файле readme.txt (в архиве). Также в инструкции подробно рассмотрен процесс удаления модуля с сайта.
       
      Версия для OpenCart 1.5 - https://opencartforum.com/files/file/3049-auto-cache-cleaner-accleaner-oc-15/
      Версия для OpenCart 3 - https://opencartforum.com/files/file/6943-auto-cache-cleaner-accleaner-oc-3/
       
       
    • By Verwolf
      350.00 руб
      Скачать/Купить дополнение


      Auto Cache Cleaner (ACCleaner) OC 2
      Простой модуль, позволяющий автоматизировать процесс очистки кэша сайта.
       
      Позволяет освободить дисковое пространство на хостинге за счёт удаления закэшированных данных модулей и расширений, которые не используются.
       
      Очистка кэша запускается автоматически при следующих действиях в админке:
      отключение модификации; удаление модификации; удаление какого-либо расширения (из любой категории).  
      Также данный модуль способствует увеличению производительности сайта в целом и уменьшает время ответа сервера за счёт уменьшения запросов к не используемым файлам кэша.
       
      Производит очистку:
      системного кэша OpenCart; кэша изображений.  
      Более подробно о назначении каждого Вы можете прочитать по ссылке - http://cccp-blog.com/opencart/kak-v-opencart-ochistit-kehsh
       
      Очистка кэша запускается при каждом удалении расширеания и модификации через админку. Также после установки доступна возможность очистки кэша вручную, не дожидаясь удаления модулей, с помощью кнопки Clear Cache в боковом меню панели администратора в меню System.
       
      При установке пользуйтесь инструкцией, описанной в файле readme.txt (в архиве). Также в инструкции подробно рассмотрен процесс удаления модуля с сайта.
       
      Версия для OpenCart 1.5 - https://opencartforum.com/files/file/3049-auto-cache-cleaner-accleaner-oc-15/
      Версия для OpenCart 3 - https://opencartforum.com/files/file/6943-auto-cache-cleaner-accleaner-oc-3/
       
       
      Добавил Verwolf Добавлено 27.03.2019 Категория Кэширование, сжатие, ускорение Системные требования Сайт разработчика http://cccp-blog.com Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет  
    • By Verwolf
      350.00 руб
      Скачать/Купить дополнение


      Auto Cache Cleaner (ACCleaner) OC 3
      Простой модуль, позволяющий автоматизировать процесс очистки кэша сайта.
       
      Позволяет освободить дисковое пространство на хостинге за счёт удаления закэшированных данных модулей и расширений, которые не используются.
       
      Очистка кэша запускается автоматически при следующих действиях в админке:
      отключение модификации; удаление модификации; удаление какого-либо расширения (из любой категории).  
      Также данный модуль способствует увеличению производительности сайта в целом и уменьшает время ответа сервера за счёт уменьшения запросов к не используемым файлам кэша.
       
      Производит очистку:
      системного кэша OpenCart; кэша изображений.  
      Более подробно о назначении каждого Вы можете прочитать по ссылке - http://cccp-blog.com/opencart/kak-v-opencart-ochistit-kehsh
       
      Очистка кэша запускается при каждом удалении расширеания и модификации через админку. Также после установки доступна возможность очистки кэша вручную, не дожидаясь удаления модулей, с помощью кнопки Clear Cache в боковом меню панели администратора в меню System.
       
      При установке пользуйтесь инструкцией, описанной в файле readme.txt (в архиве). Также в инструкции подробно рассмотрен процесс удаления модуля с сайта.
       
      Версия для OpenCart 1.5 - https://opencartforum.com/files/file/3049-auto-cache-cleaner-accleaner-oc-15/
      Версия для OpenCart 2 - https://opencartforum.com/files/file/6937-auto-cache-cleaner-accleaner-oc-2/
       
       
      Добавил Verwolf Добавлено 28.03.2019 Категория Кэширование, сжатие, ускорение Системные требования Сайт разработчика http://cccp-blog.com Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0 ocStore 3.0 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет  
    • By Verwolf
      Простой модуль, позволяющий автоматизировать процесс очистки кэша сайта.
       
      Позволяет освободить дисковое пространство на хостинге за счёт удаления закэшированных данных модулей и расширений, которые не используются.
       
      Очистка кэша запускается автоматически при следующих действиях в админке:
      отключение модификации; удаление модификации; удаление какого-либо расширения (из любой категории).  
      Также данный модуль способствует увеличению производительности сайта в целом и уменьшает время ответа сервера за счёт уменьшения запросов к не используемым файлам кэша.
       
      Производит очистку:
      системного кэша OpenCart; кэша изображений.  
      Более подробно о назначении каждого Вы можете прочитать по ссылке - http://cccp-blog.com/opencart/kak-v-opencart-ochistit-kehsh
       
      Очистка кэша запускается при каждом удалении расширеания и модификации через админку. Также после установки доступна возможность очистки кэша вручную, не дожидаясь удаления модулей, с помощью кнопки Clear Cache в боковом меню панели администратора в меню System.
       
      При установке пользуйтесь инструкцией, описанной в файле readme.txt (в архиве). Также в инструкции подробно рассмотрен процесс удаления модуля с сайта.
       
      Версия для OpenCart 1.5 - https://opencartforum.com/files/file/3049-auto-cache-cleaner-accleaner-oc-15/
      Версия для OpenCart 2 - https://opencartforum.com/files/file/6937-auto-cache-cleaner-accleaner-oc-2/
       
       
    • By Absalem
      Добрый день!
      У меня окстор Версия 1.5.5.1.1, все картинки кешируются в папку image/cache/ без подпапок, где путь к файлу исходнику в кешированной картинке сохраняется в самом имени файла, например: /image/cache/data-products-citilux-cl407111-700x700.jpg
      В итоге получается, что в папке image/cache/  у меня порядка 24 тысячи картинок.
      Я видела, что в других версиях окстора в папке /image/cache/ сохраняется структура папок такая же, как image/data/
       
      Как мне на моем сайте сделать так, чтоб кешированые картинки тоже сохранялись по такой же структуре папок, как в image/data/
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.