За последние 24 часа нас посетил 60871 программист и 1772 робота. Сейчас ищут 858 программистов ...

Кеш на одну секунду…

Тема в разделе "PHP для новичков", создана пользователем artuska, 24 июл 2009.

  1. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    ааап!
     
  2. кешируй, отдавай дату записи, надпись пиши JS-ом. Очевидно же.
     
  3. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    бгг, это как-то убого.
    Где посмотреть статистику по включенным/отключенным JS у пользователей?

    а еще: вот у меня есть список комментов, на моих комментах я должен показывать кнопку редактировать. Как это реализовать? не сохранять же для каждого пользователя свой кеш
     
  4. Нет ножек - нет мультиков.
     
  5. artuska

    artuska Активный пользователь

    С нами с:
    6 авг 2007
    Сообщения:
    61
    Симпатии:
    0
    Адрес:
    Riga, Latvia
    Нет, так и делай, через JS. А если у пользователя отключен Яваскрипт, то просто дата показывается (вида дд.мм.гггг), вот и все.
    А вообще, не стоит ради параноиков, у которых отключен Яваскрипт, создавать себе проблемы. Подстраиваться под 0.0001% от всех пользователей интернета абсолютно не имеет смысла.

    Кнопку редактировать лучше не надо — будет много «пустых» комментариев (чувак что-нить ляпнет, ему ответят, а он возьмет и отредактирует свой камент, заменив весь камент на пробел)

    Самой обычной операцией — есть кеш, если добавляется камент, то кеш очищается и создается новый. Точно так же, когда редактируешь — очищаешь весь кеш и делаешь новый )
     
  6. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    artuska
    я имел ввиду как реализовать кеш так, что б только на своих комментах я видел надпись редактировать.

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

    вот я и хотел бы взглянуть на статистику эту. То ли LI то ли GA предоставляет такую возможность
     
  7. artuska

    artuska Активный пользователь

    С нами с:
    6 авг 2007
    Сообщения:
    61
    Симпатии:
    0
    Адрес:
    Riga, Latvia
    Аааа, тьфу, точно. Эммм… Кеш самый обычный — его на страницу и выводишь. В конце яваскриптом по-айдишке юзера выбираешь каменты, в блок каждого комментария пихаешь ХТМЛ код с кнопочкой «Редактировать камент». Аяксом отсылаешь.
     
  8. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    на торрентсру не так сделано (наверно и в vBulletin тоже). Значит думаю, что есть более внятное решение.
     
  9. artuska

    artuska Активный пользователь

    С нами с:
    6 авг 2007
    Сообщения:
    61
    Симпатии:
    0
    Адрес:
    Riga, Latvia
    Значит, там сделано через жопу.
     
  10. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    написал я тут плагин для отрисовки менюшки на основе древовидной структуры сайта. В распоряжении у меня списки смежности (id, parent_id). Другую модель использовать не буду, даже не уговаривайте.

    Нужно теперь это дело закешировать. Например, используя APC. Да хочу сразу html кешить, хуле нам, кабанам?

    У плагина есть настройки. $this->params:
    int rootId - id элемента, с которого начинаем выбирать дерево
    int depth - глубина, на которую спускаемся при выборе
    bool->int currentId - если false - то не учитываем на какой странице сейчас. Если не false - то это должен быть id страницы, на которой мы сейчас
    int depthLower - на сколько глубоко опускаться от currentId
    int depthHighter - на сколько высоко подниматься от currentId. Выше rootId мы никак не поднимемся
    set templates - списочек шаблонов. Можно на каждый уровень дерева свой шаблон задать.

    так вот. Закешировать-то я это могу. sort($this->params), сериализую это, делаю sha1 или md5 от сериализа - получаю уникальный ключ, именно для этого currentId. Записываю, получаю. Все вроде бы хорошо. Но!

    Тут я меняю порядок элементов. Мне нужно сбросить кеш. Как? Можно конечно сбросить весь кеш для всех вариантов использования плагина, но это не есть гуд. Как по-другому составлять ключи?
     
  11. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    я тут подумал.. Наверно буду весь кеш сбрасывать. Так как для того, что б частично его сбрасывать, мне нужно будет учитывать все id-элементы, которые в каждом конкретном случае заюзаны.