[Помогите] Кеширование виджетов ВКонтакте, Facebook ...

Тема в разделе "OpenCart", создана пользователем denya, 4 мар 2013.

  1. denya

    denya

    Регистрация:
    2 мар 2013
    Сообщения:
    129
    Симпатии:
    35
    Доброго времени суток обитателям форума!

    Опишу некритичную ситуацию, которая "мозолит" глаза: у меня на сайте магазина используются виджеты социальных сетей (ВКонтакте и Facebook). Хотя подгружаются они асинхронно с основной страницей, но иногда время загрузки занимает больше 5 секунд :cold: , так как они расположены в футере, то постоянно происходит обновление этих самих виджетов и психологически это воспринимается как легкое подтормаживание странички.
    Так как свежесть информации с этих соцсетей некритична, то возникла идея кешировать этот контент и обновлять время от времени, а не каждый раз. Может у кого есть идеи? Как можно реализовать с помощью используемого в opencart кеширования? Буду благодарен за наставление :Smile:
     
  2. denya

    denya

    Регистрация:
    2 мар 2013
    Сообщения:
    129
    Симпатии:
    35
    Насколько я понимаю, нам нужно выполнить такие шаги:
    1. сервер предоставляет посетителю стандартное подключение виджета;
    2. на клиенте джаваскриптом виджета подгружается необходимый контент в соответствующее место на странице и отображается;
    3. мы передаем контент виджета серверу и сохраняем в кеше\сессии пользователя (если хотим сделать персонализированные виджеты);
    4. при следующих обращениях к серверу будет выводится закешированный контент (с проверкой времени жизни данных);
    Реализуемо ли это?
     
  3. denya

    denya

    Регистрация:
    2 мар 2013
    Сообщения:
    129
    Симпатии:
    35
    получается что именно его + со стандартной оберткой подключающих DIV'ов.
    Это позволит в рамках конкретного посетителя убрать ненужные обращения к соцсетям.
     
  4. denya

    denya

    Регистрация:
    2 мар 2013
    Сообщения:
    129
    Симпатии:
    35
    В src ссылку на "обработчик" кешированных виджетов - модуль или просто php файл, который будет вытаскивать данные из сессии (с передачей необходимых кукисов идентификатора сессии) пользователя или просто из глобального кеша. Я пока вижу это в теории и пытаюсь прояснить детали реализации.

    Главный вопрос - стоит ли с этим заморачиваться, кому-то еще это напряжно видеть или это только у меня?
     
  5. dbunt1tled

    dbunt1tled

    Регистрация:
    18 фев 2013
    Сообщения:
    233
    Симпатии:
    44
    помоему эта беда у всех, единственное что предлагает гугл это асинхронная загрузка когда грузится основной контент, а потом догружается виджет
     
  6. halfhope

    halfhope

    Регистрация:
    31 дек 2012
    Сообщения:
    285
    Симпатии:
    312
    У меня был случай, когда нужно было оптимизировать сайт. Все что можно было сделал, остались только скрипты комментариев вконтакте и файсбука, они были во вкладках.
    Смысл загружать лишние 100-200 килобайт, если пользователь может ими и не воспользоваться???. Решил проблему. Javascript подгружал и инициализировал скрипты соц. сетей только тогда, когда пользователь переходил на эти вкладки. А Вам, возможно, подойдет не кеширование, а именно - загрузка скриптов по событию. Например, подгрузите и инициализируйте(выполните) скрипт, только тогда, когда его блок станет видимым. Как это делает JQuery LazyLoad только с изображениями.
    P.S.
    Загрузка скриптов по требованию
    Событие OnVisible с JQuery
     
    HooliLaga и denya нравится это.
  7. denya

    denya

    Регистрация:
    2 мар 2013
    Сообщения:
    129
    Симпатии:
    35
    Такой очевидный вариант даже и в голову не пришел. Попробую с вашего подхода (событие OnVisible), если "тормоза" останутся - буду копать глубже. Загрузка скриптов по требованию звучит заманчиво, но там используется синхронный AJAX запрос.