Логотип персонального сайта Н.И.Жарких
Письмо на сайт
Версия для печати
Лента новостей (RSS)
Смерека / Программисту / Объект SmerecashPage

Смерека

Программисту

Объект SmerecashPage

Объект SmerecashPage предназначен для поиска предварительно сгенерированного (смерекешированного) HTML кода веб-страниц и передачи данных клиенту. От этого класса наследуется класс Page.

Поля

protected $PageSmerecasheable – значение логического типа, которое разрешает или запрещает смерекеширование данной страницы. Если смерекеширование разрешено, при запросе страницы делается попытка отыскать в смерекеше предварительно сгенерированный код, а при генерации код страницы записывается в смерекеш. Если смерекеширование запрещено, Смерека всегда выполняет полный цикл генерации HTML кода страницы.

protected function CanSmerecashe()

Метод возвращает логическое значение, которое разрешает или запрещает смерекеширование данной страницы. Типично смерекеширование разрешено, если его позволяют глобальная переменная $GLOBALS['UseSmerecashe'] и значение поля PageSmerecasheable. Если в сеансе PHP установлен объект User (по умолчанию), то дополнительно вызывается его метод AllowSmerecash().

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

protected function Compress(&$Data)

Метод получает HTML код веб-страницы и сжимает его алгоритмом gzip для того, чтобы отправлять пользователю меньший объем данных. Это сжатие выполняется после постобработки, при каждой пересылке страницы пользователю (независимо, была страница смерекеширована или нет). Сжатие выполняется при одновременном выполнении всех следующих условий:

  • это разрешено глобальной переменной CompressOutput;
  • клиент готов воспринять gzip-данные;
  • MIME Type данных страницы – HTML;
  • длина входного потока превышает 20 кб (можно что-то сэкономить на его сжатии).

Функция возвращает логическое значение – было применено сжатие или нет.

public function Display($Id = NULL)

Главный метод класса. В данном классе она выполняет работу со смерекешем. Если необязательный параметр $Id задан, функция выполняет поиск в смерекеше страницы с заданным ид-ом вершины и текущей языковой версией. Если этот параметр не задан, вызывается метод PageURLInfo и поиск осуществляется по адресной строке, сгенерированный этим методом.

Если смерекешированный код страницы найден, он отсылается клиенту методом SendPage и работа Смереки на этом заканчивается; если код не найден, метод возвращает значение False и стандартный цикл генерации страницы продолжается.

protected function MIMEType()

Метод возвращает строку MIME Type для данной страницы. По умолчанию метод выбирает это значение из таблицы smerecash. Потомки класса могут переопределить это поведение.

public static function PageURLInfo()

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

protected function SendHeader($Size, $CanCache, $LastUpd)

Отсылает клиенту HTTP-заголовки в соответствии с параметрами $Size (размер данных), $CanCache (возможность HTTP-кэширования), $LastUpd (дата последней модификации данных).

protected function SendPage($R, $D)

Метод получает данные, которые нужно отослать пользователю ($R) и дату последней модификации ($D). При необходимости функция выполняет постобработку полученных данных (типичная задача, которую выполняет постобработка – вставка числа загрузок данной страницы, которая выполняется при каждой отправке данных клиенту). После этого делается попытка сжать данные методом Compress. При успешном сжатии клиенту высылаются соответствующие HTTP-заголовки. После этого клиенту отсылается поток данных.

Предыдущий раздел | Содержание | Следующий раздел

Понравилась страница? Помогите развитию нашего сайта!

© 1978 – 2018 Н.И.Жарких

Перепечатка статей с сайта приветствуется при условии
ссылки (гиперссылки) на мой сайт

Сайт живет на

Число загрузок : 1348

Модифицировано : 8.08.2017

Если вы заметили ошибку набора
на этой странице, выделите
её мышкой и нажмите Ctrl+Enter.