ugrás a tartalomhoz

ob_flush(), flush() nagyobb adatmennyiség esetén

Theo76 · 2015. Jan. 31. (Szo), 14.34
Sziasztok!

Egy olyan kérdésem lenne, hogy folyamat kijelzést kellene csinálnom php segítségével.
Könyvtár szerkezetet kell beolvasni, és a beolvasás közben kiírni egy divbe, hogy épp melyik könyvtárban van.
$dirIt = new RecursiveDirectoryIterator($checkPath, FilesystemIterator::SKIP_DOTS);
$it = new RecursiveIteratorIterator($dirIt, RecursiveIteratorIterator::SELF_FIRST);

foreach ($it as $file) {
  if ($file->isDir()) {
    ...
    echo "<script>
$('#div').html(...);
</script>";
    ob_flush();
    flush();
  } else {
    ....
  }
}
Ezzel próbálkoztam eddig. Szépen csinálja is, de ha nagyobb adatmennyiségről van szó, akkor leáll a böngésző. Milyen megoldás lehetséges arra, hogy a scriptet kiváltani esetlegesen a php közvetlenül módosítsa a div tartalmat, vagy arra megoldás, hogy magát a <script></script> tartalmát felülíratni, hogy a sok bejegyzés ne növelje a html kód méretét...
 
1

Megközelítés

Poetro · 2015. Jan. 31. (Szo), 16.37
Rossz a megközelítés. Mivel a HTML fájl, ami a kimeneted egy fájl, ezért úgy is képzeld el, amit valami folyamatosan olvas. Ezért korábban már kiküldött információt már nem írhatsz felül, mert azt már olvasta.
Szépen csinálja is, de ha nagyobb adatmennyiségről van szó, akkor leáll a böngésző.

Mit jelent a nagyobb adatmennyiség, és mit jelent, hogy leáll a böngésző?
Milyen megoldás lehetséges arra, hogy a scriptet kiváltani esetlegesen a php közvetlenül módosítsa a div tartalmat

AJAX.
2

Tudnál valami működőképes

spapp · 2015. Feb. 2. (H), 11.31
Tudnál valami működőképes kódot prezentálni?
Több infót esetleg.
3

Ha nem kereskedelmi oldal és

kuka · 2015. Feb. 2. (H), 12.16
Ha nem kereskedelmi oldal és megteheted, hogy nem törődsz az Explorerekkel, akkor a legsimább a multipart/x-mixed-replace.
4

Egyszerű

Hidvégi Gábor · 2015. Feb. 2. (H), 12.24
Még jópár évvel ezelőtt az egyik hardverkereskedőtől le lehetett tölteni az árlistáját, ami egy többmegabájtos HTML volt, ráadásul akkor még jóval lassabb volt az internetelérés sebessége.

Ami nagyon sokat dobott az egészen, hogy letöltés közben a böngésző címsorában folyamatosan kijelezte, hány százaléknál tart. Ezt trükkösen úgy oldották meg, hogy a HTML-ben a megfelelő helyeken volt egy script blokk:
</table>
<script>
document.title = '36%';
</script>
<table>
  ...
Akár ezt is felhasználhatod, persze a saját kívánalmaidnak megfelelően.