• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Ladezeiten einer HP messen inklusive Ajax-Requests

Extrazzer

New member
Hallo,

ich suche derzeit eine Möglichkeit die Ladezeit einer Homepage zu messen. Allerdings ist dabei zu beachten, dass diese Seite (bzw. Seiten) nach ihrem laden ihren kompletten Content per Ajax nachladen. Sicher werdet ihr euch fragen warum, naja weil diese Pages auf einem Wifi-Modul von Gainspan liegen, welches wir verbauen und dieses Modul kann kein PHP, somit müssen die Daten über das Modul direkt vom Microprozessor abgefragt werden, was wiederum nur per AJAX geht.

Jetzt aber zurück zum Problem.

Wir wollen feststellen wie sich Änderungen an der Software des Prozessors die Ladezeiten der Webpages beeinflusst. Dazu soll eine Art Programm geschrieben werden. Mit Firebug lässt sich das ganze ja gut beobachten, Ziel ist es aber 500-600 Aufrufe laufen zu lassen um einen guten Mittelwert zu haben, da die Ladezeit teils sehr stark schwanken. Ich habe es bereits geschafft die Ladezeit mit Javascript zu messen, aber eben nur mit "iframe.onload" womit lediglich die Zeit gemessen wird welche die Seite bis zum Anzeigen braucht (Grundgerüst), danach werden aber noch die eigentlichen Daten nachgeladen und per Script in die Seite eingefügt.

Ich habe schon versucht per "iframe.contentWindow.document.body.innerHTML" auf die Seite zuzugriefen, aber dies wird mir verweigert.

Ich hoffe ich habe das Problem verständlich erklärt und irgendwer hat vll. eine Idee was man noch abfragen könnte um ein besseres Messergebnis zu erhalten.

Liebe Grüße
Markus
 
Sowas würde ich mit einem kleinen Perl Kommandozeilenscript machen. Mit dem Modul LWP::UserAgent ist in ein paar Zeilen ein originaler Browser Request nachgeahmt und das kann man natürlich in Perl auch messen mit time(). Wenn es ganz genau sein soll sogar mit Time::HiRes. Vorteil ist, die Messung erfolgt tatsächlich von "aussen" wie bei einem Benutzer der mit dem Browser unterwegs ist und man braucht am Seitencode nichts ändern.
 
Ah, als Verneinung macht der Satz Sinn, ok :)

Ich denke, auf jeden Fall macht das in Javascript eher weniger Sinn, daher vorerst mal verschoben.
 
aber dies wird mir verweigert
Dann ist dir wahrscheinlich die SOP im Weg. Aber für genauere Aussagen müssten wir deinen <iframe>-Messungs-Code kennen.

Dieses Problem müsstest du zuerst entfernen. Dann könntest du dir in dein JS einen Callback im äußeren window feuern, der dann die Messung stoppt.

Browser Request nachgeahmt
Werden da wirklich auch alle externen Ressourcen (Bilder, CSS, JS) geladen und dann das JS ausgeführt? Inklusive AJAX? Würde mich jetzt wundern...
 
Werden da wirklich auch alle externen Ressourcen (Bilder, CSS, JS) geladen und dann das JS ausgeführt? Inklusive AJAX? Würde mich jetzt wundern...
Sagen wir es mal so, das Rendering ist nicht wie bei einem Browser und JS Code wird auch nicht ausgeführt. Aber das reine Laden aller Elemente kann man mit ganz wenig zusätzlichem Code natürlich ergänzen. Ich hatte die Frage auch als reinen Performance Test für die Ladegeschwindigkeit bei verschiedenen Konstellationen verstanden. Das Rendering und die JS Code Ausführung sind ja eh bei jedem Browser wieder anders. Außerdem hast du beim Browser immer noch den Faktor Cache im Spiel und den will man ja wohl eher nicht haben bei sowas.
 
Aber das Problem von Extrazzer ist doch, dass er auch die AJAX-Requests mitmessen will/muss. Und dazu braucht man JS.
 
Nö, man kann die Requests ja auch separat stellen, sobald die Seite geladen ist. Dafür braucht man keine JS Ausführung. Der Fragesteller kennt ja die Sachen, die geladen werden sollen auch ohne das JS zu analysieren oder auszuführen. Von daher kann er das alles sogar separat ganz fein granuliert messen. Wie gesagt, alles natürlich ohne Rendering Dauer.
 
Wieviele Requests kann das Teil denn parallel anfordern? Kann man das so einstellen, dass es, wie die Browser, immer parallel maximal eine gewisse Anzahl von Requests zur selben Domain startet?
 
Korbinian, so speziell hab ich mich damit bisher nicht beschäftigt. Ich weiss auch nicht, ob das einen wahrnehmbaren Unterschied macht, ob man nun 3 oder 5 gleichzeitig macht. Aber Gegenfrage: Verhalten sich denn diesbezüglich alle Browser völlig identisch, sodass es Sinn machen würde, dieses Detail nachzuahmen?
 
Verhalten sich denn diesbezüglich alle Browser völlig identisch,
Nein: javascript - Max parallel http connections in a browser? - Stack Overflow - im FF kann man das sogar über about:config -> network.http.max-connections-per-server selber einstellen.

Aber die verschiedenen Browser muss man sowieso immer alle separat mal durchschauen.

Zusätzlich ist die Frage, ob das Teil auch persistente Verbindungen realisieren kann, da das auch einen großen Unterschied machen kann (v.A. bei SSL).

Auch werden im Browser ja gerne mal manche Sachen von anderen blockiert und verzögern damit zusätzlich.
 
Zurück
Oben