Как я реализую кэш HTML для сайта PHP?

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

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

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
12
задан different 10 September 2008 в 21:13
поделиться

8 ответов

Если кэш прокси-сервера будет вне рассмотрения, и Вы служите полным файлам HTML, то Вы получите лучшую производительность путем обхода PHP в целом. Исследование, как WP Супер работы Кэша.

Некэшируемые страницы копируются в папку кэша с подобной структурой URL как Ваш сайт. По более поздним запросам mod_rewrite отмечает существование кэшируемого файла и служит ему вместо этого. другие директивы RewriteCond используются, чтобы удостовериться, что пользователи комментаторов/зарегистрированный видят живые запросы PHP, но большинство посетителей будет обслуживаться Apache непосредственно.

7
ответ дан 2 December 2019 в 03:56
поделиться

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

16
ответ дан 2 December 2019 в 03:56
поделиться

Я рекомендовал бы Memcached или APC. Оба - решения для кэширования в оперативной памяти с очень простыми API и большим количеством библиотек.

Проблема с теми 2 - Вы, должен установить их на Вашем веб-сервере или другом сервере, если это - Memcached.

APC

Профессионалы:
  • Простой
  • Быстро
  • Ускоряет выполнение PHP также
Недостатки
  • Не работает на распределенные системы, каждая машина хранит свой кэш локально

Memcached

Профессионалы:
  • Быстрый (выход)
  • Может быть установлен на отдельном сервере для всех веб-серверов для использования
  • Высоко протестированный, разработанный в LiveJournal
  • Используемый всеми большими парнями (Facebook, Yahoo, Mozilla)

    Недостатки:
  • Медленнее, чем APC

  • Возможная сетевая задержка
  • Немного больше конфигурации

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

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

4
ответ дан 2 December 2019 в 03:56
поделиться

Лучший способ пойти состоит в том, чтобы использовать кэш прокси-сервера (Сквид, Лак) и вручить соответствующие заголовки Cache-Control/Expires, наряду с Завершающими тегами: посмотрите, что Mark Nottingham Кэширует Учебное руководство для полного описания того, как работают кэши и как можно получить большую часть производительности из кэширующегося прокси.

Также проверьте memcached и попытайтесь кэшировать свои запросы базы данных (или еще лучше, предварительно представленные фрагментами страницы) там.

7
ответ дан 2 December 2019 в 03:56
поделиться

Движок шаблонов Присяжного острослова PHP (http://www.smarty.net) включает довольно усовершенствованную систему кэширования.

Можно найти детали в кэширующемся разделе руководства Присяжного острослова: http://www.smarty.net/manual/en/caching.php

2
ответ дан 2 December 2019 в 03:56
поделиться

Вы, кажется, ищет платформу кэша PHP. Я рекомендую Вам шаблонную систему TinyButStrong, который идет с очень хорошим плагином CacheSystem. Это просто, легко, настраиваемо (можно кэшировать любую часть файла HTML, который Вы хотите), очень мощный ^^

1
ответ дан 2 December 2019 в 03:56
поделиться

Простое кэширование страниц или части страниц - Груша:: класс CacheLite. Я также использую APC и кэш-память для разных вещей, но другие ответы, которые я видел до сих пор, больше для большего количества полных, и сложных систем. Если просто необходимо сэкономить некоторые усилия, восстанавливающие часть страницы - Cache_lite с поддержанным файлом хранилищем совершенно достаточен, и очень прост реализовать.

1
ответ дан 2 December 2019 в 03:56
поделиться

Газель проекта (сайт потока с открытым исходным кодом) предоставляет пошаговое руководство по установке Memcached на сайте, который можно легко использовать на любом другом веб-сайте, который Вы могли бы хотеть настроить, который обработает большой трафик.

Захватите вниз источник и прочитайте документацию.

0
ответ дан 2 December 2019 в 03:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: