Есть ли смысл в кэшировании меню?

12
nastroen
На сайте с 23.08.2013
Offline
77
724

Подскажите чайнику, есть ли на html-сайте смысл в подобном кэшировании меню или изображений? Или можно не кэшировать?

<?php 

$src = ''/menu.htm;
$cache = './cache/menu.htm';
if ( (!file_exists($cache) or filemtime($cache) < (time() - 12*3600))
and $content = file_get_contents($src)) {
file_put_contents($cache, $content);
} else {
$content = file_get_contents($cache);
}
echo $content;
?>
L
На сайте с 10.02.2015
Online
260
#1

В вашем случае это будет переливание с пустого в порожнее.

И у вас какая-то перевернутая логика получения-записи в кеш.

Сначала нужно читать, потом записывать.

danforth
На сайте с 18.12.2015
Offline
153
#2

Какой смысл сначала записать файл в html, а затем прочесть его?

От такого кеширования пользы нету. Статику не кешируют таким образом. Передавайте соответствующие заголовки через header.

Junior Web Developer
Candidate
На сайте с 09.05.2012
Offline
36
#3
nastroen:
Подскажите чайнику, есть ли на html-сайте смысл в подобном кэшировании меню или изображений? Или можно не кэшировать?

Надо для этого нормально настроить веб-сервер.

nastroen
На сайте с 23.08.2013
Offline
77
#4

Благодарю за замечания.

А если я так сделаю вызов сквозного меню, это не крамольно будет?

<?php 

$content = file_get_contents('/menu.htm');
echo $content;
?>

На кэширование-то я и не замахивался - его мне в вышеприведенном виде посоветовал один из разработчиков известной CMS, но, судя по вашим комментариям, он был пьян в тот момент.

nastroen
На сайте с 23.08.2013
Offline
77
#5

Просто еще безопасность волнует. Не будет ли какой уязвимости при выводе html-меню указанным в сообщении 5 способом?

M
На сайте с 04.12.2013
Offline
223
#6

nastroen, читайте меню до начала ввода страницы. Ну и по фэншую лучше меню и прочие «виджеты» запрятать в закрытый от прямого доступа из-вне каталог.

Имя файла тоже у вас странное. Что за слеш впереди?

---------- Добавлено 02.03.2016 в 00:06 ----------

Смысла в кэшировании, которое вы в стартовом посте показали, нет. Вот если бы меню формировалось на основе данных из базы, тогда да... Вы бы либо читали меню из кэша, либо прогоняли данные из базы через шаблон меню и сохраняли результат в памяти для обработки тек. запроса и в кэше для обработки последующих.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
Руслан С
На сайте с 12.12.2015
Offline
9
#7

Изучение языка программирования через написания собственной идеальной CMS - через это проходили все... Только к функционалу нужно подходить по мере потребности. Если у вас первая проблема - отсутствие трафика на сайте, кеширование - наверное, последнее, что должно вас интересовать.

B
На сайте с 13.02.2008
Offline
262
#8

Только с кэшированием меню может быть проблема с подсветкой активного пункта. Этот момент надо учитывать.

Руслан С
На сайте с 12.12.2015
Offline
9
#9
borisd:
Только с кэшированием меню может быть проблема с подсветкой активного пункта. Этот момент надо учитывать.

Это уже учтено, вы посмотрите код. Такой кеш всегда актуален!

danforth
На сайте с 18.12.2015
Offline
153
#10
nastroen:
Просто еще безопасность волнует. Не будет ли какой уязвимости при выводе html-меню указанным в сообщении 5 способом?

Безопасность — иллюзия. Запомните. Все что кто-либо когда-либо создал подвержено взлому. Вопрос лишь в популярности ресурса и «призовом фонде». Развивайтесь своими темпами, делайте ошибки, набивайте шишки. Не бойтесь что вас засмеют за дырку в сайте. Писать что-то самому: уже похвально. Если хотите идти в ногу со временем и писать правильно: phptherightway.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий