Karsten: Maximale HTML Dateigroesse

Guten Tag,

ich frage mich gerade wieviel KB an HTML man einem Benutzer einer
Webpage zumuten kann/darf.
Frueher galten ja solche Richtlinien wie <40KB - doch ich denke im
Zeitalter von DSL-Flatrates sollte dieser Wert wohl mitterweile ein
wenig ueberholt sein.

Hintergrund:
Es geht um ein Forum, welches bisher auf ca 40-50 KB / Seite kommt.
Nun soll jedoch zu jedem Posting (im Durchschnitt sind das pro
Seite ca. 60-70) eine Art Kontextmenu hinzukommen.
Diese ist rechteabhaengig und muss fuer jedes Posting/ jeden User
individuell erstellt werden.
Nach o.g. Implementierung gelange ich auf 180-200 KB.

Wenn ich mal so schaue

  • heise ~ 42KB
  • spiegel ~113KB
  • selfhtml ~160KB
    ist es m.M.n. doch ein wenig hoch.

Oder was meint ihr dazu?

Gruesse
Karsten

PS: Bin gerade dabei das Kontextmenu mittels JavaSctript erst
_zur Laufzeit_ zu erstellen. Mal schauen ob das performanter
erscheint.

  1. Hi,

    PS: Bin gerade dabei das Kontextmenu mittels JavaSctript erst
    _zur Laufzeit_ zu erstellen. Mal schauen ob das performanter
    erscheint.

    Das hätte ich auch vorgeschlagen. Grade bei einem Forum kann es doch nervig sein, wenn jede Seite lange braucht, um vollständig angezeigt zu werden (wenn man z.B. etwas sucht bzw. die Themen nur schnell überfliegen will). Außerdem musst du natürlich auch den Traffic des Servers betrachten, der sich ja quasi vervierfachen würde. Das könnte teuer werden, je nachdem wo und wie gehostet wird ;).

    Dummerweise bleiben bei dieser Lösung natürlich die User, die Javascript deaktiviert haben, auf der Strecke. Aber wenn das Kontext-Menü keine wichtigen Infos beinhaltet, denke ich, dass man das in Kauf nehmen kann.

    Ciao,
    David //aka DeWitt

    --
    selfcode ie:% fl:( br:< va:) ls:} fo:| rl:( n4:° ss:) de:] js:| ch:] sh:( mo:| zu:(
    << Life is just a moment in eternity, yet every life echoes there >>
    1. Hallo David,

      ich habe des jetzt mal umgestellt - danach komme ich nur noch(?) auf
      ungefaehr 100 KB.

      Allerdings gefaellt mir das gerade nicht so, da ich jetzt im ganzen
      PHP-Code verteilt unter jedem Posting so etwas wie das hier stehen
      habe (vereinfacht):

        
      <script type="text/javascript" language="javascript">  
        
      var cm_cm_4495 = new ContextMenu("cm_4495");  
        
      var micm_4495_cmi_0 = new ContextMenuItem("../imgs/icons/default/open_folder.png", "", "", ""); cm_cm_4495.AddMenuItem(micm_4495_cmi_0);  
        
      var micm_4495_cmi_1 = new ContextMenuItem("../imgs/icons/default/new_mail.gif", "", "", ""); cm_cm_4495.AddMenuItem(micm_4495_cmi_1);  
        
      var micm_4495_cmi_2 = new ContextMenuItem("../imgs/icons/default/new_entry.gif", "", "", ""); cm_cm_4495.AddMenuItem(micm_4495_cmi_2);  
        
      var micm_4495_cmi_3 = new ContextMenuItem("../imgs/icons/default/user.gif", "", "", ""); cm_cm_4495.AddMenuItem(micm_4495_cmi_3);  
        
      var micm_4495_cmi_4 = new ContextMenuItem("../imgs/icons/default/bookmark.gif", "", "", ""); cm_cm_4495.AddMenuItem(micm_4495_cmi_4);  
        
      var micm_4495_cmi_5 = new ContextMenuItem("../imgs/icons/default/delete.gif", "", "", ""); cm_cm_4495.AddMenuItem(micm_4495_cmi_5);  
        
      </script>  
      
      

      Wie gesagt, das Contextmenu kann fuer jeden Eintrag unterschiedlich
      sein - daher dieser Overhead.

      ..bin irgednwie unschluessig.

      Karsten

      1. Hi,

        Wie gesagt, das Contextmenu kann fuer jeden Eintrag unterschiedlich
        sein - daher dieser Overhead.

        Du kannst aber Javascipt auslagern, wodurch diese Datei i.d.R. vom Browser gecached wird. Sie kann also locker auch etwas umfangreicher sein und über eine universelle Funktion, die mit den entsprechenden Parametern aufgerufen wird, alle möglichen Kontextmenüs generieren.

        freundliche Grüße
        Ingo

  2. Moin!

    Wenn ich mal so schaue

    • heise ~ 42KB
    • spiegel ~113KB
    • selfhtml ~160KB
      ist es m.M.n. doch ein wenig hoch.

    Die Hauptdatei dieses Forums benötigt, sofern sie wieder voll mit Postings ist (wie hatten ja gerade erst wiedereröffnet) ungepackt etwa 500 KB. Was sich gepackt auf unter 100 KB zusammenstauchen läßt (mod_gzip läßt grüßen).

    Die Frage ist, was für ein Monster-Kontextmenü du denn da aufziehen willst. Ich meine: AJAX ist ja nicht umsonst erfunden worden, du könntest alle Menüinhalte dynamisch erst dann laden, wenn konkret ein Kontextmenü angefordert wird. Vorher sparst du dir diese Datenmenge komplett.

    Bleibt nur die Frage, wie responsiv die Oberfläche dann wirkt. Auf einen Klick hin erstmal gar nichts zu tun (sondern nur intern was zu laden) ist sicherlich für die Benutzer ganz schlecht. Es hängt aber natürlich auch davon ab, wie häufig das Menü gebraucht wird.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Hallo,

      Die Hauptdatei dieses Forums benötigt, sofern sie wieder voll mit Postings ist (wie hatten ja gerade erst wiedereröffnet) ungepackt etwa 500 KB.

      OK, das hatte ich natuerlich nicht bedacht.

      Was sich gepackt auf unter 100 KB zusammenstauchen läßt (mod_gzip läßt grüßen).

      Sieh an, das kannte ich noch gar nicht.
      Woran erkenne ich, ob das bei meinem Provider aktiviert ist?
      Schaue ich in der phpinfo nach, so finde ich nur den Eintrag unter
      Environment: HTTP_ACCEPT_ENCODING  gzip,deflate

      Die Frage ist, was für ein Monster-Kontextmenü du denn da aufziehen willst.

      Naja, ist halt sehr fexibel. Der Admin zB hat gut 20 Auswahlmoeglichlkeiten.

      Ich meine: AJAX ist ja nicht umsonst erfunden worden, du könntest alle Menüinhalte
      dynamisch erst dann laden, wenn konkret ein Kontextmenü angefordert wird. Vorher
      sparst du dir diese Datenmenge komplett.

      Auf die Idee bin ich ehrlich gesagt noch gar nicht gekommen.
      Danke, ein Grund mich da endlich mal einzuarbeiten ;)

      Bleibt nur die Frage, wie responsiv die Oberfläche dann wirkt. Auf einen Klick hin erstmal gar nichts zu tun
      (sondern nur intern was zu laden) ist sicherlich für die Benutzer ganz schlecht.

      Nun, das ist wohl abhaengig von der Ladezeit ;)

      Es hängt aber natürlich auch davon ab, wie häufig das Menü gebraucht wird.

      Relativ. Die Optionen sind auch ueber weitere Folgeseiten zu erreichen.

      Danke fuer den Beitrag.
      Karsten

      1. Moin!

        Was sich gepackt auf unter 100 KB zusammenstauchen läßt (mod_gzip läßt grüßen).
        Sieh an, das kannte ich noch gar nicht.

        Dann wird es aber Zeit ;-)

        Woran erkenne ich, ob das bei meinem Provider aktiviert ist?

        Die Ausgabe von phpinfo() liefert u.a. auch Informationen über die geladenen Apache-Module (irgendwas mit „loaded (apache) modules“).

        Schaue ich in der phpinfo nach, so finde ich nur den Eintrag unter Environment: HTTP_ACCEPT_ENCODING  gzip,deflate

        Das heißt nur, dass dein Webbrowser, mit dem du die berühmte phpinfo.php aufgerufen hast, gzip- und deflate-Kompression unterstützt.

        Neben mod_gzip gibt es außerdem noch gzip_cnc, was eine Alternative zu mod_gzip darstellt und in Perl programmiert ist. Bei der Verwendung von PHP mit der gzip-Erweiterung kannst du auch diese benutzen. Entweder über die Konfigurationseinstellung zlib.output_compression (kann in der php.ini oder .htaccess gesetzt werden) oder manuell im Code:

        if(ereg('gzip', getenv('HTTP_ACCEPT_ENCODING')) &&  
                !ini_get('zlib.output_compression'))  
        {  
                ob_start('ob_gzhandler');  
        }
        

        Viele Grüße,
        Robert

  3. Moin!

    ich frage mich gerade wieviel KB an HTML man einem Benutzer einer Webpage zumuten kann/darf. Frueher galten ja solche Richtlinien wie <40KB - doch ich denke im Zeitalter von DSL-Flatrates sollte dieser Wert wohl mitterweile ein wenig ueberholt sein.

    Das hängt wohl auch von deiner Zielgruppe ab. Ich kenne in meinem Bekanntenkreis noch einige, denen das Modem vollkommen ausreicht, aber dafür andere Gruppen, in denen jeder einen DSL-Anschluss hat.

    Ab einer bestimmten Größe, nach meiner Erfahrung mehrere Megabyte, fangen dann allerdings die Browser an langsam und zäh zu werden.

    PS: Bin gerade dabei das Kontextmenu mittels JavaSctript erst _zur Laufzeit_ zu erstellen. Mal schauen ob das performanter erscheint.

    Damit verlagerst du den Flaschenhals vom Datendurchsatz (der Internetverbindung) zur Leistungsfähigkeit des Client-Computers. Je nach Zielgruppe (s.o.) kann das tatsächlich sinnvoll sein. In der Regel wird ein längeres Laden allerdings eher toleriert als eine langsame Webanwendung.

    Viele Grüße,
    Robert