PHP Flush: Jak často a Best Practices

hlasů
23

Právě jsem dočetl tento příspěvek: https://developer.yahoo.com/performance/rules.html#flush a již zavedly flush po horní části mých stránek zatížení (hlava, css, top banner / search / NAV) ,

Je nějaký výkon zasažen splachování? Je tam taková věc, jako to dělá příliš často? Jaké jsou nejlepší postupy?

Pokud budu hit externího rozhraní API pro data, bylo by to smysl spláchnout do ruky, takže uživatel nebude čekat na tato data, aby se vrátil, a je aspoň nějaká data do ruky?

Položena 09/12/2008 v 14:51
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
19

Tato technika je popsáno vypadá hezky, ale má několik úskalí:

1) doba mezi začátkem PHP skriptu a na konci je malý ve srovnání s vysílacího času; Vám ušetří uživatele o 0,5 sekundy, v závislosti na zdroji. Je skutečnost, že značné množství času pro vás?

2) Tato technika nefunguje s gzip výstupu do vyrovnávací paměti

3), pokud vyprázdnění příliš často, budete posílat téměř prázdnou paket na spláchnutí, což by mohlo ve skutečnosti zvýšit dobu načítání (k pomalé, hlučné připojení).

4) po vyprázdnění, nemůžete posílat žádné další hlavičky

5) (minoritní záležitost) odpověď serveru přijde do blokového kódování, což znamená, že klient nebude znát velikost předem (tedy nebude zobrazovat „x% udělal“ Při stahování souboru).

Na druhou stranu, pokud očekáváte, že váš skript běžet příliš dlouho (20 a více sekund), může být potřeba poslat nějaké data (mezery, například), aby prohlížeč od časového limitu připojení.

Odpovězeno 09/12/2008 v 15:10
zdroj uživatelem

hlasů
5

Nevýhodou je, že nemůžete gzip obsah, stejně jako to spláchnutím Pokud vím, tak jsem vždycky raději gzip spíše než flush.

Některé verze aplikace Microsoft Internet Explorer spustí pouze pro zobrazení stránky poté, co obdržel 256 bytů výstupu, takže možná budete muset poslat další mezery před návaly dostat tyto prohlížeče pro zobrazení stránky.

To dělá to není nápad, jak se zdá, polstrování více dat není příliš užitečné.

Odpovězeno 09/12/2008 v 14:58
zdroj uživatelem

hlasů
3

Myslím, že flush je opravdu doladění mechanismu. Prohlížeče používají pouze asi 8 nití ke stažení obsahu (záleží na prohlížeči). Pokud máte 15 obrázků, prohlížeč začne stahovat 8 snímků a nebude nic jiného stáhnout, dokud jeden z nich dokončí, pak to začne stahovat další snímek, atd spláchnutím po hlavičce, ty jsou v podstatě říkat prohlížeč co mohl začít stahovat. V době, kdy zbytek stránky doručení (tj .5 sekund později), prohlížeč již hotové stahování CSS a JavaScript souborů. To by uvolnit stahování závity pro další obsah.

Pravděpodobně nebudete chtít používat flush na jiném místě, než hned po hlavičce. Prohlížeče, který obvykle nebude vykreslení neuzavřené HTML tagy, takže přináší dílčí stránky nezobrazí věci nic rychleji. Starší verze IE nezobrazí vůbec nic, dokud neobdrží určité množství dat, nebo dodání strana je dokončena.

Odpovězeno 30/03/2010 v 14:11
zdroj uživatelem

hlasů
2

Následující Piskvor je bod - pokud čekáte 20s + čekat, můžete být lépe poskytovat základní stránku (která může být gzip) a pomocí Ajax aktualizovat stránku, když je pomalý proces dokončen. Ty začnou porušovat základní užitečnost statické HTML, ačkoli.

Odpovězeno 09/12/2008 v 15:17
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more