Diese Woche hatten wir ein Problem ganz anderer Art.
Eine Single Site Applikation wurde extrem langsam geladen.
Mal abgesehen von der Architektur und der Umsetzung irrsinnigen Umsetzung der dynamischen Site mit jQuery und ajax Requests lief irgend etwas gar nicht rund.
Die stelle des Codes, in der das Lag von 14 Sekunden bis zu 55 Sekunden auftritt war schnell gefunden. Ein Ajax Request holte sich HTML Content vom Server, fügte diesen in ein Div ein und manipulierte anschließend noch verschiedene Dinge in diesem HTML Code.
Klingt ja schon mal ganz schön bescheuert…
Nach dem ich alle Funktionsaufrufe im Callback des Ajax Requestes entfernt hatte und nur noch das Ausblenden des Loader Gifs und das hinzufügen des HTML Codes enthalten waren, änderte sich an der Performance nichts.
Nachdem ich dann den jQuery Teil $(…).html(result) mit document.getElementById(…).innerHTML = result ersetzt hatte, lag die Antwortzeit nur noch bei 300 – 900 ms statt bei 14000 – 56000 ms bei ca 200 KB HTML Code.
Hier ein kleiner Test auf Fiddler
Die Frage WARUM? WTF? Bleibt weiter ungelöst.
Warum läd sich eine SSA (Single Site Application) HTML Code vom Server anstatt eine ordentliche JSON Struktur mit den Daten zu verarbeiten?
Warum werden alle Request wie bei einem Page Refresh bei jedem klick gefeuert?
Worin besteht der Sinn des Lebens?
Wir werden wohl nie Erfahren was sich der Entwickler dabei gedacht hat. Leider kann man ihm das auch nicht einfach wieder auf den Tisch schmeißen und sagen: „Hier mach dein Scheiß selbst“ 😀
Eine Überarbeitung oder wie man so schön sagt „Refactoring“ bleibt wohl nicht aus.
Ich bin für eine RestAPI und ein AngularJS Frontend.