Reduzierung der HTTP-Anfragen

Die wesentlichen Möglichkeit­en zur Opti­mierung der Ladezeit­en liegen gemäß Steve Soud­ers in den Tem­plates ein­er Web­site [Sou07]. Diese set­zen sich aus einem HTML-Doku­ment, den Cas­cad­ing Style Sheets zur Def­i­n­i­tion der optis­chen Gestal­tung und JavaScripts für die Aus­führung dynamis­ch­er Funk­tion­al­itäten zusam­men. Der Abruf ein­er jeden Web­seite hat eine ganze Rei­he von Anfra­gen an den Web­serv­er zur Folge.

Dabei sollte die Anzahl der HTTP-Anfra­gen an einen Web­serv­er so ger­ing wie möglich aus­fall­en, da die Anzahl gle­ichzeit­iger HTTP-Verbindun­gen client­seit­ig durch die Brows­er begren­zt ist [WH15]. Die meis­ten aktuellen Brows­er kön­nen sechs bis acht gle­ichzeit­ige Verbindun­gen zu ein­er Domain auf­bauen [CIW15] [Dav13]. Jede Ressource, die neben dem HTML-Doku­ment geladen wird, erzeugt eine HTTP-Anfrage. Wer­den viele Ressourcen geladen, erfol­gt dies bis zu der von dem Brows­er ermöglicht­en Anzahl par­al­lel, alle weit­eren Ressourcen warten so lange, bis eine der vorheri­gen Über­tra­gun­gen abgeschlossen wurde. Daher spielt bei der Per­for­manceop­ti­mierung die Reduzierung der Anfra­gen zur Ver­ringerung der Ladezeit eine wesentliche Rolle.

Um eine Reduzierung der HTTP-Anfra­gen zu erre­ichen kann geprüft wer­den, ob sich einzelne Stylesheets, JavaScript-Dateien oder Bilder jew­eils zu ein­er größeren Datei zusam­men­fassen lassen. Diese Dateien sind zwar von der Dateigröße umfan­gre­ich­er, erfordern jedoch nur eine HTTP-Anfrage und verbessern somit die Ladezeit [CIW15]. Es sollte zudem sichergestellt wer­den, dass keine Skripte dop­pelt oder in ver­schiede­nen Ver­sio­nen geladen wer­den [Sou07]. Häu­fig passiert dies mit der JavaScript-Bib­lio­thek jQuery bei der Nutzung mehrerer Erweiterun­gen in Con­tent-Man­age­ment-Sys­te­men.

Zur Darstel­lung ein­er Web­seite soll­ten auss­chließlich Ressourcen geladen wer­den, die auf dieser auch Ver­wen­dung find­en [KR13]. Dies bet­rifft vor allem Ressourcen, die nicht sicht­bar sind oder nur von bes­timmten Seit­en­typen genutzt wer­den. Befind­et sich beispiel­sweise auf der Start­seite ein­er Web­site ein Slid­er, ist es nicht erforder­lich, dass das zuge­hörige JavaScript auf jed­er Web­seite mit geladen wird. Dies ist ein Prob­lem bei der Nutzung vorge­fer­tigter Themes für Con­tent-Man­age­ment-Sys­teme. Da bei diesen, wie in Kapi­tel 2.4.2 beschrieben, eine Vielzahl an Def­i­n­i­tio­nen und Funk­tio­nen in dem Quell­code enthal­ten sind und davon nur ein geringer Anteil genutzt wird [Buc14]. Die Reduzierung unnötiger Ressourcen kann bei diesen Themes viele Anpas­sun­gen und somit einen hohen Zeitaufwand erfordern. Indi­vidu­ell erstellte Themes hinge­gen wer­den auf die tat­säch­lichen Anforderun­gen der Web­site zugeschnit­ten. Daher kann bei diesen bere­its in der Entwick­lung auf die Nutzung nicht erforder­lich­er Ressourcen verzichtet und damit eine gerin­gere Anzahl an HTTP-Anfra­gen berück­sichtigt wer­den.