Загрузка страницы — Белая вспышка между страницами

Есть два сайта, один работает, другой в разработке. Я переношу сайт на Zend Framework (в целях удобства обслуживания/интеграции).

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

Портированный сайт (разработка) на короткое время «мигает» полностью белым, после чего весь контент появляется одновременно.

Насколько я понимаю, это не FOUC (flash of unstyled content). Контент на обоих сайтах всегда отображается полностью с учетом всех правил CSS. Два сайта выглядят одинаково при отображении, они используют одни и те же изображения, css и HTML-разметку. Единственная разница в том, что один (разработка) обслуживается Zend Framework, а другой (живой) — процедурным PHP.

Каковы основные причины этого, и является ли это известной ошибкой/проблемой конфигурации ZF? У меня была эта проблема раньше без использования ZF, и я не решил ее.

Спасибо за вашу помощь.


person Mahdi.Montgomery    schedule 15.09.2010    source источник


Ответы (4)


Попробуйте поставить javascript внизу страницы, прямо перед закрывающим тегом body. Это должно ускорить отрисовку страницы, так как загрузка javascript блокирует другие загрузки (css, изображения и т. д.), поэтому ваша страница остается пустой до тех пор, пока не загрузятся все ваши скрипты.

person baseten    schedule 21.06.2011

Это может быть ваш веб-сервер. Попробуйте сравнить заголовки HTTP ваших серверов с помощью веб-сниффера, такого как http://web-sniffer.net/. и посмотрите, есть ли разница в кэшировании заголовков. Если да, то ваш браузер сбрасывает все и начинает заново, что в некоторых случаях может выглядеть почти как FOUC.

person mattbasta    schedule 16.09.2010
comment
Попытался изменить все заголовки, чтобы они соответствовали, например, конфигурации staples.com. До сих пор белая вспышка между страницами. Стоит отметить, что это действительный XHTML, без @imports для CSS. - person Mahdi.Montgomery; 21.09.2010

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

person meagar    schedule 15.09.2010
comment
Действительно ли это вызовет вспышку совершенно пустой страницы? Глядя на веб-сайт со значительно более длительной загрузкой страниц, чем у меня (на примере abode.com) — в два раза больше моей загрузки на сайте Zend — у них нет даже малейшего мерцания при переходе между страницами с одинаковым макетом. РЕДАКТИРОВАТЬ: Еще лучше stackoverflow.com/users загружаться в 5 раз дольше, чем моя страница - полностью бесшовно каждый раз, когда вы нажимаете на ссылку. - person Mahdi.Montgomery; 16.09.2010

Хорошо, я принял ответ преждевременно. Причиной этой проблемы на самом деле был SWFObject!! Я заметил это при разработке нового сайта, и он демонстрировал такое же поведение. Я считаю, что это происходит только в версии 2+, но для всех, у кого есть проблема с фоновым миганием между загрузками страниц (в отличие от отображения всего отображаемого HTML сразу) и на этих страницах вызывается swfobject - удалите его и попробуйте. Это может быть только ваша проблема тоже.

Чтобы уточнить, я обновился до более поздней версии SWFObject при переносе сайта.

person Mahdi.Montgomery    schedule 16.03.2011