[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос по кешированию
GET
Здравствуйте.

Читал статью о кешировании, там предлагают рользоваться готовым классом Cache_Lite(вернее библиотекой состоящей из 3 классов), я не против ООП, но там задался вопрос:
"В этом примере я использовал процедурный подход. Однако я не советую делать это на практике, поскольку это закончится очень грязным кодом (смотри последующие решения с лучшей альтернативой) и, вероятно, вызовет проблемы с блокировкой файла (например, что случится, когда кто-то обращается к кэшу в момент его обновления?)."

if(is_readable('file')) Это должно решить эту проблему? Что в этом классе может быть такого, что нельзя решить процедурным подходом?



Спустя 31 минута, 42 секунды (4.06.2012 - 02:31) SitnikovArtur написал(а):
А чем не устраивает блокировка файла в момент записи? Все станут в очередь пока не...

Спустя 4 минуты, 28 секунд (4.06.2012 - 02:35) inpost написал(а):
A.B.C.
О да, ООП - и вдруг файл перестанет магическим образом блокироваться, а с ним - нет...
Советую выделить этот файл(файлы) и нажать F8, а после почитать более качественный материал, потому что такие заявления могут говорить только новички в программировании.

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

Спустя 7 минут, 46 секунд (4.06.2012 - 02:43) GET написал(а):
inpost

...это я там нарыл:
http://phpclub.ru/faq/cahcing/CaptureServe...orCaching?v=stj

if(is_readable('file')) ведь непросто проверяет наличие, но и доступность чтения, во время обновления кеша (перезаписи файла) функция чтения ведь недоступна?

Спустя 4 минуты, 14 секунд (4.06.2012 - 02:47) GET написал(а):
Вот здесь прочитал:

http://www.wr-script.ru/info/35.php

Спустя 8 минут, 38 секунд (4.06.2012 - 02:56) inpost написал(а):
A.B.C.
Увы , я тоже по этой ссылке учился, но это не значит, что на все 100% они правы, надо суть улавливать. Я прочитал статью, а сделал в итоге по своему, главное основную мысль понять как с ней работать. Не забывай, что лучший код будет храниться только в твоей голове и ты с ней делиться не будешь.

Спустя 42 секунды (4.06.2012 - 02:57) GET написал(а):
Спасибо!

Спустя 5 часов, 54 минуты, 56 секунд (4.06.2012 - 08:52) GET написал(а):
Кэширование динамических страниц.

Страниц-анкет скажем, где распологается форма с селектами и инпутами, куда приходят $_SESSION или $_POST, реально ли такое сделать действительно проще?

Попробывал записать такую страницу в кеш-файл (типа страница шаблон), а потом str_replace'ом сделать замену.
Хотя с готовым куском кода HTML работать проще, но для того, чтоб провести правильную замену пришедших переменных в этой шаблонной странице все равно нужно подключать БД и читать переменные этой страницы.

Например, хотя селекты уже написаны надо выбрать из куска HTML нужное и сделать скажем

$cache=$str_replace('<option></option>','<option>$_SESSION['name']</option>',$cache);

При этом надо сначала найти нужный селект, а потом нужное место и $_SESSION['name'] проверить.

Может еще какие способы существуют? Статичные безФОРМенные страницы это понятно.

В гугле гуглил подходящей инфы ненашел.

Спустя 6 минут, 52 секунды (4.06.2012 - 08:59) Игорь_Vasinsky написал(а):
кеширование используют для динамических страниц, формируемых на лету из БД, из ещё чего либо. придумано оно, чтобы снизить нагрузку. смысл что то реплейсить? опять же динамика.

Спустя 21 минута, 44 секунды (4.06.2012 - 09:20) GET написал(а):
Игорь_Vasinsky

Ну вот из БД на лету формируется список:

<select name='name'>
while($ss=mysql_fetch_assoc(s))
{
if ($_SESSION['n']==$ss['n']) echo '<option selected>'.$ss['n'].'</option>';
else echo '<option>'.$ss['n'].'</option>';
}
</select>

после нажатия сабмит загружается этаже страница только на нее приходит $_SESSION['n'], как быть с кэшем этой повторной страницы?

Спустя 10 минут, 52 секунды (4.06.2012 - 09:31) Игорь_Vasinsky написал(а):
тогда - да. использовать её как шаблон smile.gif

Спустя 7 минут, 50 секунд (4.06.2012 - 09:39) GET написал(а):
Игорь_Vasinsky

Мне кажется, это тоже повлечет за собой целый хвост проблем, особенно если форма разнородна, меняется содержимое и порядок тегов внутри нее. Хотя и 3-4 запроса в БД на странице это ощютимо.

Спустя 4 минуты, 21 секунда (4.06.2012 - 09:43) Игорь_Vasinsky написал(а):
ну вот я же несколько раз говорил. кеширование используют, когда можно принебречь актуальностью выводимых данных.

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

Спустя 2 минуты, 8 секунд (4.06.2012 - 09:45) GET написал(а):
Игорь_Vasinsky

Спасибо.

Спустя 4 часа, 10 минут, 30 секунд (4.06.2012 - 13:56) inpost написал(а):
A.B.C.
Кеш используют не абсолютно на всех местах, а только на нужных. Если сайт молодой, то используй только на высоконагруженных.
У меня была задача выбирать 10 случайных фотографий из БД, то есть RAND(), вот я сформировал кеш из 100 фотографий, а далее уже их выдавал из кеша в случайном порядке. Кеш обновляю 1 раз в пол часа. Скрипт стал работать в 20 раз быстрее, БД уже не приходится дёргать.

Спустя 10 минут, 9 секунд (4.06.2012 - 14:06) vagrand написал(а):
Я лично считаю что кеширования страницы сайта целиком это не рационально и влечет за собой кучу проблем (если какие-то элементы страницы динамически изменяются). Не надо бездумно кешировать все что не попадя. Внедрение кеша в проект это прежде всего исследовательская работа. Сперва надо выявить куски кода или запросы к БД, которые создают наибольшую нагрузку и вот их и кешировать. В основном нагрузку на сервере создают именно запросы к БД, а уже само конструирование страницы занимает намного меньше времени. Так вот запросы и надо кешировать.

Вообщем я высказал свое ИМХО, не претендую на истину в последней инстанции, но сам всегда придерживаюсь такого алгоритма.

Спустя 2 часа, 59 минут, 42 секунды (4.06.2012 - 17:06) Guest написал(а):
Не всегда кэш быстрее чем сделать тот же запрос.
Кэшировать имеет смысл только "СТАТИЧЕСКУЮ" информацию, разнообразных списков юзера. Т.е. не частообновляемую инфу.
Кэш личного кабинета - не решение ибо в личном кабинете, как правило - динамической информации много.

Сухой остаток - кэш для редкоменяемой инфы ИЛИ если же доступ к этой же инфе за короткий промежуток будет существенно превышать скорость обновления этой инфы

Спустя 54 минуты, 15 секунд (4.06.2012 - 18:00) Игорь_Vasinsky написал(а):
)) ну все одно и тоже дружно высказали. а как-будто холивар начинается)

Спустя 3 часа, 39 минут, 45 секунд (4.06.2012 - 21:40) vagrand написал(а):
Ну лично я и не пытался холиварить с ТС-ом. Так может быть натолкнуть на нужную мысль слегка


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.