» Poradna » Web a internet

Postupné vykreslování stránky přes PHP

Odpovědět  |  Zobrazit bez stromu  |  Upozornit redakci  |  nových odpovědí: 7/7
 |   |  Microsoft Windows XP Chrome 26.0.1410.64  |  [81.200.56.---]

Dobrý den,pokud se načítá nějaká velká stránka, tak se vykresluje postupně. Není v PHP možnost použít nějaký skript, který donutí ihned vykreslit to co bylo posláno? Mám například tento kód:<?php echo('START '); sleep(10); echo('STOP')?>Pokud dám načíst stránku, tak se bude čekat 10 vteřin a poté se zobrazí "START STOP". Jak mám udělat, aby se v prohlížeči vykreslilo "START ", poté 10 vteřin čekat a pak "STOP". Děkuji.

Odpovědi na otázku

avatar
 | Microsoft Windows 7 IE 10.0

Já bych to spíše řešil JavaScriptem, ale s nějakým urychlovacím tlačítkem, protože pochybuji, že někteří uživatelé budou chtít čekat.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 IE 9.0  |  [81.201.48.---]

ten problém nemusí být jen v PHPpo cestě k uživatelům jsou různé cache, antivirové kontroly a podobné věci, které mohou čekat na kompletní stránku, než jí přepošlou dálpak je tu vlastní vykreslování v prohlížeči, např. pokud se nepletu, tak všechny prohlížeče čekají dokud nemají celou tabulku a pak jí teprve vykreslíjinak v PHP jako takovém by se to muselo asi řešit pomocí bufferování funkce ob_start a flush

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux AppleMAC-Safari 5.0  |  [212.71.154.---]

asi tak, není to tak jednoduché jak myslíš (jako nejdůležitější je neznalost pojmů vykreslování a stahování, dále záleží, jak se chová webový server, hlavička content-transfer -encoding chinked). Spíš napiš čeho chceš docílit.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Chrome 26.0.1410.64  |  [85.71.54.---]

AJAXem

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Opera 9.80  |  [90.181.101.---]

Response se posílá na klienta ve chvílí kdy je celý na serveru sestaven - t.j. serverový skript doběhlna to co popisuješ použij AJAX

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 IE 10.0  |  [85.135.52.---]

hele udělal jsem normálně test - použit je web server "php -S 127....:80"Kecy- nerozumíš tomu: uvidíš, že rresponse se odesílá v sekundových intervalech.. navíc opera content type text/plain zobrazí až dorazí celý a html podle Nastavení-Prohlížení-Vykreslování (ihned/ po x sekundách / až je celá) zkus si tenhle kód (pohraj si s komentáři)<?php#header('Content-type:text/plain'); # on/off#header('Content-Transfer-Encoding: chunked'); # on/offfor($o=5;--$o;){ #echo "$o<br>"; # jedno #echo "$o-br-"; # nebo druhe usleep(1e6); ob_flush();}

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Opera 9.80  |  [158.193.140.---]

Související témata: Stop



Určitě si přečtěte