Страница не загружается в Safari.Окно Активности, перечисляющее экземпляры about: blank - PullRequest
0 голосов
/ 11 января 2012

У меня есть страница, которая не всегда отображается в Safari. Это отображается как пустая страница. Если я загляну в Окно Активности, то в списке загружаемых ресурсов я увижу пару экземпляров about: blank

Простое обновление страницы устраняет проблему.

Это может быть надежно воспроизведено и влияет только на Safari.

Кто-нибудь видел это раньше?

Ответы [ 2 ]

1 голос
/ 27 января 2012

решаемые

Оказалось, что проблема была в элементе управления на странице, который генерировал Javascript для создания межсайтовых файлов cookie между двумя связанными сайтами в этом проекте. Safari очень строго отвергает попытки создания межсайтовых файлов cookie, и, по-видимому, именно так и происходит.

Как только я удалил элемент управления, страница последовательно отображалась в Safari.

1 голос
/ 26 января 2012

У меня такая же проблема, также возникает с Google Chrome.Может быть, проблема, связанная с Webkit?Просмотр исходного кода страницы показывает, что источник загружен правильно, но в моем случае содержимое div не отображается.Когда я пытаюсь проверить элементы, появляется div.Ошибка консоли ничего не показывает.Я пытаюсь найти решение этой проблемы и сообщу, если мне это удастся.

РЕДАКТИРОВАТЬ: Решено!

Генерируется ли ваша страница динамически?Я обнаружил, что и Chrome, и Safari могут неправильно отображать страницу, если заголовок Content-Length отправляется, но его значение неверно.Я не отправлял заголовок явно, но мы используем бэкэнд WordPress с пользовательским интерфейсом и включили wp-blog-header.php, который отправлял заголовки.Я переключил это на wp-load.php, чтобы предотвратить отправку ненужных заголовков.

В дополнение к этому, у обоих браузеров есть ограничение на количество данных, которое им нужно получить до начала рендеринга.Порог для Safari составляет около 1 КБ и около 2 КБ для Chrome.Мои страницы были длиннее этого, но я подозреваю, что из-за кеширования проблема сохранялась на этом этапе.

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

<?php ob_start('ob_gzhandler'); ?>
<!-- Static and dynamically generated content -->
<?php ob_end_flush(); flush(); ?>

И вуаля, после очистки кэша Safari я избавился от проблем рендеринга!

...