Рассмотрим следующее:
incl.php
<div id='footer'>
<?php
sleep(10);
echo "<div class='footer-float'><!-- content --></div>";
?>
<div style='clear:both;'></div>
</div>
page.php
<div id='main-content'>
<!-- normal markup structure... -->
</div>
<div id='footer-wrapper'>
<?php include('incl.php'); ?>
</div>
У меня есть страница (page.php), которая включает нижний колонтитул, разметка для которого находится в incl.php.
Настоящий incl.php делает некоторые вещи из базы данных WordPress для поиска последних сообщений и отображения небольшого всплывающего сообщения для каждого из них - это работает нормально, но потому, что существует задержка (представленная здесь командой sleep ()), устанавливающая соединения с базой данных и включающая необходимые файлы WP, это может нарушить макет моей страницы, так как он может приостановить работу на несколько секунд.
Пока он находится в ожидании, плавающие div в моем нижнем колонтитуле означают, что контейнер не будет растягиваться для содержимого, уже загруженного, до тех пор, пока incl.php не завершит выполнение и не предоставит очищающий div, необходимый для растяжения контейнера.
Что я хотел бы знать, так это: есть ли способ заставить PHP обслуживать разметку (то есть нединамический материал) сначала вместо того, чтобы делать все последовательно, как это кажется в данный момент?
Иначе, есть ли лучший способ сделать это менее резким? Я не могу установить статическую высоту для рассматриваемого элемента нижнего колонтитула, так как он будет меняться в зависимости от содержимого.
Любые указатели высоко ценится
EDIT:
Несколько слов для тех, кто обеспокоен эффективностью:
Эта проблема возникает, когда я тестирую сайт, работающий локально, но сервер базы данных удален и находится на другом конце ненадежного и медленного сетевого соединения (если вы слышали о «ураганном подлости», который может обеспечить немного больше контекста), и это не проблема, которую я ожидаю, чтобы всплыть много, если вообще в живой среде.
Хотя пункты по оптимизации и повышению эффективности приветствуются, я не понимаю, как оправдать тратить время на беспокойство по поводу возможной 2-секундной задержки при загрузке некоторого содержимого нижнего колонтитула, которое возникает только в среде тестирования, - и пожалуйста, не делайте Я ошибаюсь, полагая, что я уже не рассматривал производительность исключительно потому, что сказал, что загрузка загружается с задержкой (опять же - ЛОКАЛЬНЫЙ сайт, УДАЛЕННЫЙ сервер базы данных, МЕДЛЕННОЕ соединение).
Для целей этого вопроса, пожалуйста, предположите, что задержка не является проблемой, скорее проблема заключается в том, как справиться с возможными задержками, когда страница не выглядит беспорядочно.