Кэшируйте изображения, которые загружаются с помощью плагина для отложенной загрузки jQuery - PullRequest
0 голосов
/ 02 февраля 2020

У этого вопроса будет более одного вопроса, поэтому извиняюсь за нарушение любого правила.

У меня есть одностраничный сайт HTML5 / CSS3 / JS / jQuery, размещенный на общем сервере Windows с доступом Plesk панель (без доступа RDP).

Этот сайт не является. NET приложением / сайтом и имеет несколько изображений, разделенных на разные разделы, которые просматриваются / отображаются с помощью закладок.

Я использовал jQuery плагин с отложенной загрузкой для отложенной загрузки изображений при каждом щелчке закладок с помощью события запуска плагина:

function lazyLoadImages(className) {  //className identifies images for each section
$(className).Lazy({
    bind: "event",
    effect: "fadeIn",
    delay:0
});};

Все работы хорошо. За исключением случаев, когда я go до WooRank для проверки SEO моего сайта, он говорит мне, что изображения не кэшируются (и срок действия не установлен и т.д. c). Это я понимаю, поэтому я использую элемент clientCache и подготавливаю файл web.config следующим образом и помещаю его в root:

<location path="images">
    <system.webServer>
      <staticContent>
        <!--<clientCache cacheControlMode="UseExpires" httpExpires="Sat, 01 Feb 2020 00:00:00 GMT"/>-->
        <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00"/>
      </staticContent>
    </system.webServer>
</location>

Это работает, и WooRank успокаивается и сообщает мне изображения в порядке сейчас. Но вот в чем проблема, я редактирую одно изображение, делаю в нем некоторые изменения и затем go загружаю. Сайт по-прежнему отображает старую версию, даже когда я Ctrl + F5 (жесткий refre sh) сайта. Чтобы проверить, является ли это проблемой с отложенной загрузкой, я изменяю другое изображение, которое не загружается с отложенной загрузкой и жестко обновляется sh, чтобы видеть, что изображение обновляется просто отлично.

Вопросы:

  1. Возможно ли использовать механизм кэширования выше с jQuery плагином с отложенной загрузкой? Если да, то как? На официальном сайте я не нашел никакой информации.

  2. Как вы можете видеть выше, я даже пытался изменить на cacheControlMode="UseExpires" с указанием даты / времени истечения, чтобы принудительно обновить refre sh сайт использовать обновленное изображение, но это не сработало. Есть ли способ обновить изображения на клиентских компьютерах без использования метода refre sh?

  3. Я знаю, что браузер кэширует файлы сам, и обычно рендеринг происходит из его локальный кеш при повторном посещении сайта, но тогда я не понимаю, почему сайты SEO-обзора всегда заставляют кэшировать такие ресурсы?

Примечание. Я уже просматривал кэш приложений, localStorage для кэширования ресурсов и решил использовать подход web.config, поскольку он не требует каких-либо дополнительных изменений кода.

...