Ergebnis 1 bis 5 von 5
  1. #1
    dertypdernixkan ist offline Tripel-As
    registriert
    31-05-2013
    Beiträge
    194

    Komisches Verhalten in FF

    Abend

    Kurze Frage an die Fachkundigen.

    In einer externen JS-Datei habe ich folgendes notiert
    Code:
    var pagespeed = false;
    Das wird später auf der Index überschrieben
    Code:
    window.onload = function() {
    	setTimeout(function() {
    		var a = window.performance.timing, r = a.loadEventEnd - a.navigationStart;
    		pagespeed = r;
    		if (((readCookie('speedup') === null && typeof(r) === 'number' && r < 1500) || r < 600) && r > 0) {
    			var http = new XMLHttpRequest();
    			http.open('POST', location.protocol+'//'+location.host+'/api/service/loadtimetrack', true);
    			http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    			http.onreadystatechange = function() {
    				if (http.readyState === 4 && http.status === 200) {
    					console.log(JSON.parse(http.responseText));
    					document.cookie = "speedup="+r+"; path=/";
    				}
    			};
    			http.send('speed='+r);
    		}
    	}, 0);
    };
    Der Code macht was er soll! Ich hatte aber kurzzeitig einen anderen Code
    Code:
    (function(window, document, undefined) {
    	setTimeout(function() {
    		var a = window.performance.timing, r = a.loadEventEnd - a.navigationStart;
    		pagespeed = r;
    		if (((readCookie('speedup') === null && typeof(r) === 'number' && r < 1500) || r < 600) && r > 0) {
    			var http = new XMLHttpRequest();
    			http.open('POST', location.protocol+'//'+location.host+'/api/service/loadtimetrack', true);
    			http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    			http.onreadystatechange = function() {
    				if (http.readyState === 4 && http.status === 200) {
    					console.log(JSON.parse(http.responseText));
    					document.cookie = "speedup="+r+"; path=/";
    				}
    			};
    			http.send('speed='+r);
    		}
    	}, 0);
    })(window, document);
    Der funktionierte aber in FF nicht korrekt, die Ausgabe der eigentlichen Ladezeit wurde in FF immer als Negativwert ausgegeben. Ich verstehe nicht warum das so ist, kann mir das jemand erklären?

  2. #2
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.569

    AW: Komisches Verhalten in FF

    * verschoben aus js *

    kannst du uns zwei url's geben oder fiddle's machen wo man das live sehen kann?
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  3. #3
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.612

    AW: Komisches Verhalten in FF

    Das sollte nicht nur beim FF so sein. Du musst schon warten, bis die Seite geladen ist, bevor du ausrechnen kannst, wie lange es gedauert hat, diese zu laden.

    Wenn du etwas mit (function(){...}()); ausführst, wird das sofort ausgeführt und das setTimeout garantiert dir auch nicht, dass die Seite danach fertig geladen ist. Ich denke, dass es in den anderen Browser funktioniert hat, da die Seite schon im Cache war.

  4. #4
    dertypdernixkan ist offline Tripel-As
    registriert
    31-05-2013
    Beiträge
    194

    AW: Komisches Verhalten in FF

    @mikedoe - Eine URI nicht, ist alles Lokal aufm Rechner. Fiddl habe ich noch nie gemacht :O

    @kkapsner - Also werden
    Code:
    (function(){...}());
    sofort aufgerufen wenn sie durch den Parser sind statt zu warten bis die Seite komplett fertig ist?

    Das Timeout ist komischerweise bei allen Browsern nötig, ohne kommen teilweise Zahlen raus die mit denen aus der Konsole nicht nicht annähernd übereinstimmen.

    Ohne liegen die Abweichungen weit über 100ms, mit schwankt es von +-20ms

  5. #5
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.612

    AW: Komisches Verhalten in FF

    Zitat Zitat von dertypdernixkan Beitrag anzeigen
    sofort aufgerufen wenn sie durch den Parser sind statt zu warten bis die Seite komplett fertig ist?
    Genau.
    Zitat Zitat von dertypdernixkan Beitrag anzeigen
    Das Timeout ist komischerweise bei allen Browsern nötig, ohne kommen teilweise Zahlen raus die mit denen aus der Konsole nicht nicht annähernd übereinstimmen.
    Das kann daher kommen, dass ja das loadEventEnd noch gar nicht erreicht ist. Du bist ja noch mitten im load-Event.

Ähnliche Themen

  1. Komisches Verhalten
    Von Arcsinh im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 15-10-2010, 01:37
  2. Antworten: 3
    Letzter Beitrag: 14-12-2009, 21:28
  3. Komisches verhalten des PopUp
    Von xplox im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 02-09-2009, 17:52
  4. window.open und PDF: komisches Verhalten
    Von KMueller im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 01-08-2008, 02:38
  5. Komisches Verhalten im IE?
    Von Schnuckenpapa im Forum CSS und (X)HTML
    Antworten: 4
    Letzter Beitrag: 23-11-2006, 13:56

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •