предварительная загрузка или кеш сайта php - PullRequest
1 голос
/ 29 марта 2011

У меня есть php-сайт, который. Я пользуюсь переключателем для включения разных страниц и навигации. я использовал метод, чтобы моя страница указателя содержала панель навигации и нижний колонтитул

Моя проблема в том, что каждый раз, когда я перехожу с одной страницы на другую, все загружается снова и делает сайт тяжелым.

<?php include('models/header.php'); ?>
<div id="content">
<center>

<div id="switch" align="center">

<?php
switch($view)
{
case 'Index':
    include('pages/index.php');
    break;

case 'Services':
    include('pages/Services.php');
    break;

case 'About':
    include('pages/about.php');
    break;

case 'Contact':
    include('pages/contact.php');
    break;

case 'Download':
    include('pages/download.php');
    break;

default:
    include('pages/error.php');
}
?>
</div>
</div>
</center>
<br>
<?php include('models/footer.php'); ?>
</div>

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

Ответы [ 3 ]

3 голосов
/ 29 марта 2011

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

Кэшированный или не кэшированный, вам все равно потребуется доступ к файлу , который вы получите при генерации кода операции. Но PHP все еще нуждается в доступе к файловой системе, за исключением случаев, когда вы используете memcached решение с RAMFS , вы не заметите реальных изменений.

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

По сути, он будет кэшировать вызовы, сделанные вами во включенный файл, и кэшировать результат интерпретатора PHP.

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

1 голос
/ 29 марта 2011

Элементы на странице (например, изображения) будут полностью перезагружены, если браузер выберет это.Если ваши элементы являются файлами PHP, они, как правило, будут полностью перезагружены, так как страницы PHP часто меняются.

Вы можете установить заголовки в PHP, которые будут указывать браузеру на кэширование страницы в течение определенного периода времени.См. http://php.net/manual/en/function.header.php для получения дополнительной информации.

0 голосов
/ 29 марта 2011

Есть много разных способов сделать это. Я бы порекомендовал использовать Smarty.

switch(strtolower($view)) {
     case "download":
            $smarty->assign("download_var", $downloadvar);
            $smarty->display("Download.tpl");
            break;
     .....
}

UPDATE

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

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