Сброс PHP: как часто и лучшие практики

23
задан Cœur 9 April 2017 в 09:53
поделиться

4 ответа

Техника описала хорошие взгляды, но имеет несколько ловушек:

1) время между Сценарием PHP запускается, и конец является маленьким по сравнению со временем передачи; также, это сохраняет пользователя приблизительно 0,5 секунды, согласно Вашему источнику. Это - существенное количество времени для Вас?

2) эта техника не работает с выходной буферизацией gzip

3), если Вы будете сбрасывать слишком часто, Вы будете отправлять почти-пустой-пакет на сбросе, который мог бы на самом деле увеличить время загрузки (на медленных, шумных соединениях).

4), как только Вы сбрасываете, Вы не можете больше отправлять заголовки

5) (незначительная проблема), ответ сервера произойдет в разделенное на блоки кодирование, что означает, что клиент не будет знать, размер заранее (поэтому не отобразит "x %, сделанный" при загрузке файла).

, С другой стороны, если Вы ожидаете, что Ваш сценарий будет работать в течение loooong времени (20 + секунды), можно быть необходимо отправить некоторые данные (пробелы, например), чтобы помешать браузеру приводить к таймауту соединения.

19
ответ дан Piskvor cc-by-sa 3.0 29 November 2019 в 02:39
поделиться

Вниз сторона - то, что Вы не можете gzip содержание, а также сбрасывание его afaik, таким образом, я всегда предпочитал gzip, а не сбросу.

Некоторые версии Microsoft Internet Explorer только начнут отображать страницу после того, как они получили 256 байтов вывода, таким образом, Вы, возможно, должны отправить дополнительный пробел прежде, чем сбросить, чтобы заставить те браузеры отображать страницу.

Это делает это не идеей, поскольку кажется, что дополнение большего количества данных не очень полезно.

5
ответ дан genesis 29 November 2019 в 02:39
поделиться

Точка следующего Piskvor - если Вы ожидаете 20-е +, ожидает, можно быть более обеспеченным обеспечением основной страницы (который может быть gzipped), и Ajax использования для обновления страницы, когда медленный процесс закончился. Вы действительно начинаете нарушать основную полноценность статического HTML, все же.

2
ответ дан Phil H 29 November 2019 в 02:39
поделиться

Я думаю, что flush - это действительно механизм тонкой настройки. Браузеры используют только около 8 потоков для загрузки контента (зависит от браузера). Если у вас 15 изображений, браузер начнет загружать 8 изображений и не будет загружать ничего другого, пока одно из них не завершится, затем он начнет загружать следующее изображение и т.д. Промывая страницу после заголовка, вы, по сути, сообщаете браузеру, что он может начать загрузку. К тому времени, когда будет доставлена остальная часть страницы (т.е. через .5 секунды), браузер, возможно, уже закончит загрузку файлов css и javascript. Это освободит потоки загрузки для другого содержимого.

Вы, вероятно, не захотите использовать flush в любом другом месте, кроме как сразу после заголовка. Браузер обычно не отображает незакрытые html-теги, поэтому доставка неполной страницы не ускорит отображение. Старые версии IE вообще не будут отображать ничего, пока не будет получен определенный объем данных или пока доставка страницы не будет завершена.

3
ответ дан 29 November 2019 в 02:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: