Kay Lehmann: maximale Zeichenlänge einer HTML-Datei

Hallo,

ich habe da mal wichtige Fragen:

1. Wieviele Zeichen lang darf eine HTML-Quellcodezeile maximal sein, damit sie noch von aktuellen Browsern angezeigt werden kann?

2. Hat bei umfangreicheren HTML-Seiten (bei gleicher Zeichenzahl) die Zeilenzahl spürbaren Einfluß auf die Ladegeschwindigkeit der Seite?

Ich würde mich freuen darauf eine Antwort zu bekommen.

MfG
Kay Lehmann

  1. Hallo,

    Hi,

    ich habe da mal wichtige Fragen:

    1. Wieviele Zeichen lang darf eine HTML-Quellcodezeile maximal sein, damit sie noch von aktuellen Browsern angezeigt werden kann?

    Mir ist keine Grenze bekannt. Auch mehrere zig KB ohne Zeilenumbruch sind kein Problem - warum auch, HTML hat mit Zeilenumbrüchen recht wenig zu tun (nur in pre und per css auf white-space:pre formatierten Elemenenten, sowie evtl in Script-Elementen haben Zeilenumbrüche eine Bedeutung).

    1. Hat bei umfangreicheren HTML-Seiten (bei gleicher Zeichenzahl) die Zeilenzahl spürbaren Einfluß auf die Ladegeschwindigkeit der Seite?

    Nein, warum sollten ein oder zwei spezielle Zeichen auf die Ladegeschwindigkeit einen Einfluß haben?
    Allerdings wird normalerweise eine Datei, aus der man Zeilenumbrüche entfernt, kleiner (je nach System 1 oder 2 Byte pro Zeilenumbruch), also wird die Ladezeit kürzer (bei gleicher Ladegeschwindigkeit).

    Andreas

    1. Hallo Kay,

      solche Probleme find ich immer total spannend :-))

      Wie wärs, wenn wir einen Versuch starten? Ich schreibe ein PHP-Script, dass eine "endlose" Datei erzeugt und ausgibt. Das einzige Hindernis dabei dürfte die max_execution_time sein, die in der php.ini eingestellt wird. Üblicherweise 30 Sekunden, ich habe sie bei mir schon auf 75 hochgesetzt.

      Da besteht auch immer noch meine Frage an die Welt, ob man diese Zeit nicht innerhalb eines Scriptes temporär verändern kann??

      Also, ich werde einen Datenblock mit Zeichen füllen und den ausgeben lassen, bis die Zeitbegrenzung erreicht ist. Zwischendurch gibts immer Kontrollzeilen, die die aktuelle Zeichenzahl angeben.

      Sonst noch was zu beachten?

      Scriptvorschläge?

      Grüße

      Tom

      1. Hallo Kay, nochmal ich...

        <?php
        $anzahl=0;
        $block="";

        for($i=0;i<=10000;$i++)
        {
          $block=$block."#";
        }

        while (true)
        {
          echo $block;
          $anzahl=$anzahl+10030;
          echo "<br>--------".$anzahl."---------<br>";
          flush();
        }

        ?>

        geht das so?

        Ich stelle die Datei auf meinen Server unter

        http://www.bitworks.de/~tschmieder/endlos.html

        Wers ausprobieren will, was seine Browser-Rechner-Kombination schafft, kann ja draufklicken. Bitte Ergebnisse hier bekannt geben.

        Wird den Traffic ganz schön versauen...

        Wenns mir zuviel wird, stoppe ich den Server.

        Grüße

        Tom

        1. Hallo,

          entweder ich bin zu blöd fürs Script oder die erstre Grenze ist schon gefunden:

          <?php

          $anzahl=0;
          $block="";

          for($i=0;$i<=10000;$i++)
          {
            $block=$block."X";
          }

          echo "hier gehts los";
          flush();

          while (true)
          {
            echo $block;
            $anzahl=$anzahl+10030;
            echo "<br>--------".$anzahl."---------<br>";
            flush();
          }

          ?>

          Es geht jedenfalls nicht...
          Wenn ich nix übersehen habe, vermute ich, dass String-Variablen doch nicht "endlos" erden dürfen, jedenfalls 10000 Zeichen zu viel sind.

          Oder?

          LG
          Tom

          1. Hallo,

            http://www.bitworks.de/~tschmieder/endlos.html
                                                      ^^^^ will der Server nicht parsen ;-)

            Schönen Gruß

            Rainer

            1. Hallo,

              http://www.bitworks.de/~tschmieder/endlos.html
                                                        ^^^^ will der Server nicht parsen ;-)

              Schönen Gruß

              Rainer

              Jau, jau Rainer,

              habs gerade gemerkt und umbenannt. kommt davon, wenn man "mal eben schnell" was ausprobieren will, und den ganzen Tag Access und HTML Seminare macht...

              Ich kenne nur noch *.mdb und *.html :-|

              html://www.bitworks.de/~tschmieder/endlos.php

              Gruß

              Tom

              1. Hi,

                X X X X X X X X X X X X X X X X X X X X X X X X X X
                --------5628430---------
                X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X (...)

                dann habe ich mal gnädigerweise abgebrochen (Mozilla 1.0.0, Linux 2.4).
                Scheint also keine praxisrelevante Begrenzung zu geben, aber was mich interessiert: Sollte ein PHP-Skript nicht normalerweise nach einer gewissen Laufzeit gecancelt werden?

                Schönen Gruß aus Bilk

                Rainer (der lieber was sinnvolles getan und sich Version 1.0.1 gesaugt hätte)

                1. Hi Rainer,

                  ich bin übers lokale Netzwerk bis auf 36MB gekommen und habe dann abgebrochen.

                  Entweder mein PHP hat eine Mache bekommen bei max_execution_time
                  Die steht auf 75 (sekunden)

                  Ich vermute aber, dass das Skript derartig schnell die Ausgabepuffer vollschreibt, dass es schon lange beendet ist, wenn wir immer noch Daten vom Server in den Browser transportieren. Diese Art der Datenübertragung ist nämlich extrem langsam. So ein Browser schafft bei HTML-Text nicht mehr als X kB/s . X liegt so in Größe von 40-100kb. Der Code muss ja interpretiert werden.

                  Zeigt Mozilla eigentlich auch schon an, während er noch lädt?

                  Grüße

                  Tom

                  1. Hallo Tom,

                    Entweder mein PHP hat eine Mache bekommen bei max_execution_time
                    Die steht auf 75 (sekunden)

                    Das scheint mir irrsinnig lange.

                    Ich vermute aber, dass das Skript derartig schnell die Ausgabepuffer vollschreibt, dass es schon lange beendet ist, wenn wir immer noch Daten vom Server in den Browser transportieren. Diese Art der Datenübertragung ist nämlich extrem langsam. So ein Browser schafft bei HTML-Text nicht mehr als X kB/s . X liegt so in Größe von 40-100kb. Der Code muss ja interpretiert werden.

                    Irgend so etwas habe ich mir schon gedacht...

                    Zeigt Mozilla eigentlich auch schon an, während er noch lädt?

                    Ja, es ist (bei Modemgeschwindigkeit) praktisch kein Unterschied zu einer ewig langen statischen Seite feststellbar.

                    Schönen Gruß aus Bilk

                    Rainer

    2. Guten Morgen @all,

      1. Wieviele Zeichen lang darf eine HTML-Quellcodezeile maximal sein, damit sie noch von aktuellen Browsern angezeigt werden kann?

      Mir ist keine Grenze bekannt. Auch mehrere zig KB ohne Zeilenumbruch sind kein Problem - warum auch, HTML hat mit Zeilenumbrüchen recht wenig zu tun (nur in pre und per css auf white-space:pre formatierten Elemenenten, sowie evtl in Script-Elementen haben Zeilenumbrüche eine Bedeutung).

      Der nachfolgend beschriebene Versuch hat ergeben, dass zumindest der IE5.5 keine langen Zeilen ohne mögliche Umbruchstelle mag. Bei den benutzen 10.000 Zeichen langen Ausgabeblöcken OHNE Leerzeichen (alles XXXX ) kam er total mit der Ausrichtung und Darstellung durcheinander.

      Nach Einbau der Leerzeichen in den Block (der wurde dadurch sogar 20.000 Zeichen lang) hat der IE sauber ausgegeben und fleißig nachgeladen. Allerdings ist seine Ladegeschwindigkeit für HTML-Text nicht gerade berauschend.

      Die verwendete Standleitung würde z.Zt. 6Mbit/s hergeben. Der IE kommt höchstens auf 1MByte in 10 Sekunden. Hängt sicher auch vom Prozessor ab.

      1. Hat bei umfangreicheren HTML-Seiten (bei gleicher Zeichenzahl) die Zeilenzahl spürbaren Einfluß auf die Ladegeschwindigkeit der Seite?

      Nein, warum sollten ein oder zwei spezielle Zeichen auf die Ladegeschwindigkeit einen Einfluß haben?
      Allerdings wird normalerweise eine Datei, aus der man Zeilenumbrüche entfernt, kleiner (je nach System 1 oder 2 Byte pro Zeilenumbruch), also wird die Ladezeit kürzer (bei gleicher Ladegeschwindigkeit).

      Das hängt eben davon ab, ob parallel (IE) oder seriell (NS) gearbeitet wird. Der IE fängt ja schon auszugeben, wenn der bereits geöladende teil interpretierbar ist. Der NS (4.7x) wartet auf das Dateiende.

      Grüße

      Tom
      [der es nun wissen wollte und noch weiter forscht]

  2. Hallo,

    ich habe da mal wichtige Fragen:

    1. Wieviele Zeichen lang darf eine HTML-Quellcodezeile maximal sein, damit sie noch von aktuellen Browsern angezeigt werden kann?

    Ziemlich viel, keine Ahnung wieviele genau, aber aufjedenfall mehr als ausreichen. Wenn du mit den Gedanken spielst, eine solche Seite zu bauen mit ewig vielen Zeichen, überleg dir das lieber nochmal. Die Übersicht bzw. schnelle Ladezeit geht dadurch verloren

    1. Hat bei umfangreicheren HTML-Seiten (bei gleicher Zeichenzahl) die Zeilenzahl spürbaren Einfluß auf die Ladegeschwindigkeit der Seite?

    Umso mehr du die "Enter"-Taste drückst,desto mehr Leerzeilen, desto größer wird die Datei, also wird auch die Ladezeit länger. :)

    Ich würde mich freuen darauf eine Antwort zu bekommen.

    MfG
    Kay Lehmann

  3. Hallo Andreas,

    mir geht es natürlich nicht um ein paar KB HTML-Code, oder um einige wenige Zeichenumbrüche mehr oder weniger.

    Vielleicht kurz zum Hintergrund meiner Frage:

    Ich programmiere zur Zeit an einem Profan²-Programm, welches aus einer reinen Textdatei automatisch lauffähigen HTML-Code erstellen soll, damit sich der Programmierer das nochmalige stupide Eintippen des Textes ersparen kann, weil dieser eh meist schon als reiner ASCII- oder Ansi-Text vorliegt (bzw. aus jeder Textverarbeitung als solcher exportiert werden kann).

    Zum Testen des Programmes bzw. für interne Fehlerabfragen interessieren mich o.g. Grenzen.

    Natürlich ist mir klar, daß niemand auf die Idee kommen wird, auf seiner HP eine z.B. 5 GB fette Textdatei listen zu wollen.

    Aber meines Erachtens müßte es eine solche Grenze geben, auch wenn es nur die Größe des Arbeitsspeichers, oder die Größe der Windoofs-Auslagerungsdatei ist ... Oder vielleicht die maximale Zeichenzahl für Stringvariablen der Programmiersprache, in welcher der Browser geschrieben ist, oder, oder, oder ...?

    Kay Lehmann

    1. Hallo,

      ich habs probiert:

      Seite mit nicht zusammengeschobem Text entspricht 101355 Bytes, Ladezeit mit Modem 28.8 kps = 28.15 sek

      selbe Seite ohne Leerzeilen und Zeilenumbruch entspricht 98067 Bytes, Ladezeit mit Modem 28.8 kps = 27.24 sek

      FAZIT: Mit dem zusammenschieben verringert sich die Bytes und somit auch die Ladezeit.

      Und die maximale Zeichenanzahl in einer Zeile ist doch wohl vom jeweiligen Editor abhängig.

      Wer das selbst mal ausprobieren möchte, kann seine Seiten unter folgender Domain testen:

      http://de.webmasterplan.com/cgi-local/router.cgi?l=de&p=wmpde&s=opt_load

  4. Hallo,

    habe die "endlos.php" eben mit Opera 6.04 unter Windows 2000 getestet. Der Aufbau ist anfangs sehr schnell, wird zum Ende hin immer langsamer. Mein Test wurde schließlich bei knapp 95 MB durch einen Browserabsturz beendet.

    geladene Datenmenge: 94,5 MB in ca. 40 min
    RAM-Speicher (nur Opera): anfangs 12 MB, am Ende 400 MB
    Geschwindkeit: anfangs 70 kB/s, am Ende ca. 35 kb/s (lt. Opera) auf einem P III 600 MHz

    ... es geht also eine ganze Menge.

    m.

    1. hi,

      habe die "endlos.php" eben mit Opera 6.04 unter Windows 2000 getestet.

      echt? unterstützt dein server endlos.php? nur damit ich dich richtig verstehe, du meinst damit sowas wie:

      seite A
      enthält seite B
      enthält seite C
      enthält seite B
      enthält seite C
      enthält seite B
      enthält seite C
      [...usw...]

      wird das von servern/anbietern standardmäßig unterstützt? ich dacht immer das sei quasi verboten.

      tschÖ
      *stefan

      1. echt? unterstützt dein server endlos.php? nur damit ich dich richtig verstehe, du meinst damit sowas wie:

        Hatte nix damit zu tun. Lies mal den Thread.

        m.