Является ли использование сценария для генерации статического содержимого просто плохой формой кэширования? - PullRequest
2 голосов
/ 27 мая 2010

Я собираюсь начать создавать небольшое приложение для пользователя, чтобы управлять контентом простого веб-сайта. Поскольку контент будет меняться относительно редко, меня поразило, что было бы бесполезно динамически генерировать каждую страницу по запросу - весь контент на сайте будет оставаться неизменным между изменениями. Простое решение, которое я придумал, состоит в том, чтобы создать приложение так, чтобы при представлении изменений генерировалась и сохранялась новая страница. Тем не менее, это похоже на плохую реализацию кэширования. Является ли написание сценария для сохранения статических страниц "неправильным" способом? Это нормально для небольших сайтов? Есть ли какие-нибудь легковесные инструменты, которые стоит использовать для реализации кэширования целых страниц для небольшого проекта, такого как этот?

Имейте в виду, что я использую решение для общего хостинга и не могу настраивать / устанавливать вещи.

Ответы [ 2 ]

1 голос
/ 27 мая 2010

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

0 голосов
/ 27 мая 2010

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

например:

если кто-то откроет мою перезапись: http://www.example.com/about-us.html он получит доступ http://www.example.com/about-us.php

в моем глобальном файле я сделал что-то вроде этого:

когда кто-то заходит на эту страницу, я проверяю, существует ли /cache/about-us.html, если это не так, я бы $cache_content = implode('', file('<a href="http://www.example.com/about-us.php" rel="nofollow noreferrer">http://www.example.com/about-us.php</a>')); открывал веб-страницу извне и записывал на диск. :

<?php
$cache_content = implode('', file('http://www.example.com/about-us.php'));
$date_cached = date('U');

$data = $date_cached."\n".$cache_content;

$fp = fopen('/cache/about-us.html', 'w');
fwrite($fp, $data);
fclose($fp);
?>

затем в файле global.php, как я уже говорил выше, он проверяет этот файл, если он находит его, он открывает и читает эту дату, если мне исполнилось 3 дня, я заново сгенерировал файл.

Я также добавил в CMS способ очистки всего кэша.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...