Wir verwenden eine modifizierte Version von Jiffy, um die tatsächliche clientseitige Leistung zu messen.Messen, wenn nur bestimmte Seitenelemente geladen wurden
Das Wichtigste, was wir tun, ist die Zeit zwischen dem Empfang der Anforderung und dem Zeitpunkt des Ereignisses zum Laden der Seite im Browser zu messen.
Auf einigen Seiten haben wir iframe
Elemente, die auf externe Seiten zeigen, die wir nicht kontrollieren - sie brauchen manchmal viel Zeit zum Laden. Im Moment wird das Seitenladeereignis für unsere Seite nur ausgelöst, nachdem die iframe
vollständig geladen wurde (und das eigene Ladeereignis ausgelöst wird).
Ich mag diese Messungen trennen - hat eine Messung nach der allem, einschließlich der iframe
geladen wird, sondern auch eine Messung ohne iframe
- das heißt, wenn die Seite zu laden, würde aufgetreten ist, wenn wir nicht ein iframe
haben .
Die einzige Möglichkeit, die ich bisher geschafft habe, ist das Hinzufügen der iframe
zum DOM nach dem Seitenladeereignis, aber das verzögert das Laden des Iframe.
Irgendwelche Ideen? Vielen Dank!
EDIT: Kopfgeld ist vorbei, danke für die Hilfe und Ideen! Ich wählte Jeds Antwort, weil es mir eine neue Idee gab - fange an, die Iframes zu laden, aber "pausiere" sie so, dass sie das Seitenladen nicht beeinflussen (indem du temporär src="about:blank"
setzt). Ich werde versuchen, eine detailliertere Zusammenfassung meiner Ergebnisse hinzuzufügen.
Danke Jed, ziemlich cool! Ich habe kein Problem, die iframes dynamisch hinzuzufügen. Ich möchte das Laden des Iframe-Inhalts nicht verzögern, und das Setzen der src nur beim "Laden" -Ereignis des Körpers könnte dies verursachen. Auf der anderen Seite, wenn Sie es im Voraus einstellen und es vor dem Ende des body-Tags zurücksetzen, könnte der Browser tatsächlich beginnen, die Frames-Komponenten herunterzuladen, nur für das Timing des Elternteils anhalten und dann fortfahren. Könnte eine großartige Idee sein, ich muss testen, ob es funktioniert. – orip
Kein Problem orip. Sie können die Ergebnisse sehen, die hier arbeiten: http://s3.amazonaws.com/frameTimer/index.html –
Wenn Sie Ladezeiten auf dem ersten Treffer für iframe URLs suchen, müssen Sie den Browser-Cache für die Messungen deaktivieren . Wenn Sie die iframe-URLs in "frameTimer.init()" durch "about: blank" ersetzen, werden einige der iframe-URLs möglicherweise bereits zwischengespeichert und die Ladezeiten können aufgrund zwischengespeicherter URLs möglicherweise verringert werden. –