@ru_bender

Скорость вызова include

Хочу выделить шапку и футер сайта в header.php и footer.php и вызывать их на страницах сайта. Но мне интересно: как изменится скорость загрузки страницы. Или лучше оставить как есть?

  • Вопрос задан
  • 2995 просмотров
Пригласить эксперта
Ответы на вопрос 5
rizhenkov
@rizhenkov
Веб-программист

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

Ответ написан
Комментировать

Все правильно. Отделяйте контент от шапки от футера, это понадобится в будущем. Скорость не изменится.

Ответ написан
Комментировать
ScorpLeX
@ScorpLeX

Вы можете самостоятельно протестировать, посчитав время например так, запомнить microtime(1) и после операций отнять от текущего времени эту величину. При include пхп сначала читает обычным методом файл в память, а потом обрабатывает парсером, обычно все зависит от скорости\загруженности диска.

Если сильно волнует скорость загрузки страницы, лучше использовать кеширование.

Ответ написан
Комментировать
@kaasius

Хороший принцип - принцип отделения кода от данных и всего этого вместе - от представления. Если хочется чего-то серьезного (а раз вы задаетесь вопросом быстродействия include, то на это похоже), отделите представление (html) от кода (php). Соединяться они имеют право только в скомпилированных шаблонах. Отвечая на вопрос - include очень быстр. Если вдруг, по какой-то неведомой мне причине, вам не хватит быстродействия, надо копать в сторону APC. Ну или бросить шаред хостинг и арендовать VPS.

Ответ написан
Комментировать
FanatPHP
@FanatPHP
Чебуратор тега РНР

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

А вот подход с разделением на хидер и футер - неправильный и давно устарел.

Делить страницу надо не на хидер и футер, а на код и отображение. Потому что:

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

В итоге страница должна собираться из трех частей:

1. Логика приложения. Должна выполняться ДО любого вывода, и хидера в том числе.
2. Общий шаблон сайта, который содержит в себе и хидер и футер. Вызывается после того, как отработала логика.
3. Шаблон конкретной страницы, который включается в общий шаблон сайта.

При такой структуре не составит никакого труда вместо страницы вывести сообщение об ошибке (при ошибке) или поменять формат вывода с HTML на JSON. Не говоря уже о смене дизайна.

Вариантов реализации может быть масса, пример самой простой, на чистом PHP, можно посмотреть здесь: http://www.phpfaq.ru/tpl#example

Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы