Ark: Wie ladet HTML Daten? $| = 1 Problem

hiho!

Die Script-Generierte Webseite enthält sehr viele Daten u.A. HTML Quelltext und auch CSS Styles sowie Bilder.

Geladen wird das ganze aus diversen Quellen, u.A. Textdateien und Datenbank.

Normalerweise wartet der Browser bis alles da ist
und zeigt erst dann alles an.

Damit das aber schneller geht gibt es in Perl eine Variable

$| = 1;

Das sagt der Browser soll alles sofort ausgeben was kommt.

Die Frage ist, ob die Standard-Browser ein Problem damit haben,
den Inhalt Zeichen für Zeichen zu erhalten.
Da kann schon sein dass mal ankommt:

<span sty

sekunden später

le="col

später

or:#cccccc;">

Oder auch bei CSS

#foo
{

später

colo

später

r:#cc0000;
}

Wie geht der Browser damit um?
sollte ich $|++;  nicht setzen?

Dangge :P
  Ark

  1. Damit das aber schneller geht gibt es in Perl eine Variable

    $| = 1;

    Das hat nichts mit dem Browser zu tun. Das schaltet den STDOUT Buffer aus. Welche Auswirkungen das hängt von vielen Faktoren ab, aber was es nicht bewirkt, ist das irgendwas schneller geht.

    Den einzigen nutzen den du hast, ist wenn du ein lang laufendes Skript (mehere Sekunden) hast und die Ausgabe gebuffert wird, kannst du mit dem obigen Befehl erreichen das die Ausgabe direkt in der Konsole landet.

    Für server push spielt das auch eine Rolle, aber wer macht das noch?

    Die Frage ist, ob die Standard-Browser ein Problem damit haben,
    den Inhalt Zeichen für Zeichen zu erhalten.

    Das passiert immer, auch bei normalen HTML Dateien. Aber der Browser hat damit keine Probleme.

    Wie geht der Browser damit um?
    sollte ich $|++;  nicht setzen?

    Nein.

    Struppi.

    1. hiho Struppi!

      Danke für Deine hilfreichen worte

      Wie geht der Browser damit um?
      sollte ich $|++;  nicht setzen?

      Nein.

      Nein was?
      Sorry ich versteh "nein" in dem Zusammenhang nicht.

      [  ]  $| = 1 verwenden,  kein Problem,  alles ok
      [  ]  $| = 1  NICHT verwenden, nicht gut, Probleme

      Dangge!

      1. Wie geht der Browser damit um?
        sollte ich $|++;  nicht setzen?

        Nein.

        Nein was?

        Ja, nicht ;-)

        Sorry ich versteh "nein" in dem Zusammenhang nicht.

        [   ]  $| = 1 verwenden,  kein Problem,  alles ok
        [ x ]  $| = 1  NICHT verwenden, nicht gut, Probleme

        (aber keine Probleme, du hast keinen Vorteil dadurch, ausser in den von mir erwähnten zusammenhang)

        Struppi.

  2. Das hat mit dem Autoflush($|) nichts zu tun, sondern mit den Zeilenumbrüchen in deinem Script.
    Da stimmt irgendwas mit der Kodierung nicht oder Du hast es irgendwann mal versehentlich binär hochgeladen oder Du generierst das Script und gibst zu viele \n oder \r (je nach System) an.

    Allerdings würde ich Dir zur normalen Ausgabe von Dokumenten, nicht unbedingt empfehlen sie zu flushen. Arbeite lieber mit Templates oder wenigstens mit HERE Documents um die Perl/HTML/CSS/was-auch-immer Sachen in eine Ausgabe zu bringen.

    Viele Grüße

    Sandra