0
0
0
core.resize() Проблема с изменением размеров для нескольких картинок
  • Здравствуйте.
    Есть страница с картинкой. На ней можно выбрать разрешение картинки 1920x1200, 1680x1050, 1440x900, 1280x800 (это ссылки, которые открываются в новом окне в соответствующем разрешении) и т.д.
    Проблема в том, что картинки разных размеров кэшируются все за раз, когда заходишь на эту страницу. Это очень долго, иногда сервер выдает timeout.
    Как можно избежать такой проблемы? Чтобы картинка кэшировалась только когда выбираешь нужный размер (одна картинка, а не все сразу).
  • Добрый день.

    Если сервер выдает таймаут значит у вас оооочень много картинок кешируются в один момент времени.

    В вашем случает поможет ajax

    Вызывать макрос можно через ajax с помощью jquery
    Документация:
    http://www.help-dev.bagira-cms.ru/template-addit/macros-ajax

    Через ajax можно вызывать макрос core.resize и передавать ему нужные параметры, примерно это будет выглядеть так:

    $.post('/ajax/core/resize', { 'parram': ['путь до картинки в полном размере', 'news_list', 'stRateably', ширина в px, высота в px] }, function(data) {
    $('img').attr('src', data);
    }, 'text');


    массив parram содержит все параметры макроса по порядку

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

    Так в чем проблема сделать core.resize на отдельной странице?

Привет, незнакомец!

Похоже, вы новенький! Чтобы пообщаться с нами, кликните на одну из кнопок ниже :)

Войти с Facebook Войти с помощью OpenID Войти с помощью Twitter\a Вход через vkontakte.ru