1. WScout - 09 Ноября, 2009 - 12:28:18 - перейти к сообщению
Такой вопрос. Стоит ли кэшировать запрос require_once, который и так интерпретируется один раз за всю работу скрипта? И что, если в файле, который проходит через require_once содержит в себе запрос к базе, будет ли он обрабатываться при повторном проходе?
2. Furax - 09 Ноября, 2009 - 22:46:33 - перейти к сообщению
require_once() выполняется один раз за одно обращение к скрипту. Если Ты кэшанёшь его содержимое в файл, этот файл всё равно придётся читать при каждой загрузке страницы, так что, честно говоря, не представляю, что тут можно выгадать с помощью кэширования. Единственное - это если сам requirуемый файл содержит какой-то громоздкий алгоритм, который даёт всегда один и тот же результат - в этом случае, разумеется, этот результат лучше вычислять лишь однажды.
Если ранее файл уже подключался вызовом require_once, то попытка заново подключить его той же функцией не даст ничего: файл не будет снова проинтерпретирован; соответственно, его HTML-содержимое попадёт в выходной поток только один раз (при первом подключении), равно как и PHP-код (в том числе - и работающий с базами данных) будет выполнен лишь однажды за вызов скрипта.
Если ранее файл уже подключался вызовом require_once, то попытка заново подключить его той же функцией не даст ничего: файл не будет снова проинтерпретирован; соответственно, его HTML-содержимое попадёт в выходной поток только один раз (при первом подключении), равно как и PHP-код (в том числе - и работающий с базами данных) будет выполнен лишь однажды за вызов скрипта.
3. WScout - 12 Ноября, 2009 - 15:30:18 - перейти к сообщению
Тогда получается, что можно не заморачиваться ни с каким кэшированием, просто цеплять нужные запросы через require_once и все? В чем тогда прелесть кэширования, просто сохранять html код, чтоб потом его снова не генерировать?
4. Furax - 12 Ноября, 2009 - 22:53:31 - перейти к сообщению
WScout
В том, что кэшируются, как правило, страницы целиком, и затем в течение, скажем, десяти минут вместо выполнения кучи скриптов выполняется лишь один require_once - подключающий уже чистый HTML. Такие операции, как парсинг bb-тегов, сложные извлечения из базы данных и т. п. нет необходимости выполнять каждый раз, хотя всё зависит от загрузки проекта...
В том, что кэшируются, как правило, страницы целиком, и затем в течение, скажем, десяти минут вместо выполнения кучи скриптов выполняется лишь один require_once - подключающий уже чистый HTML. Такие операции, как парсинг bb-тегов, сложные извлечения из базы данных и т. п. нет необходимости выполнять каждый раз, хотя всё зависит от загрузки проекта...