Bestellung von $(document).load() und $(document).ready (), wenn das zurückstellen der laden von js

Bevor ich alles ändern mein code, ich will einfach nur, um zu überprüfen, dass ich muss.

Ich habe mehrere inline-js und jquery-Funktionen, die in der ready () - Funktion:

$(document).ready(function(){ do_something(); ...

Viele dieser Funktionen verlassen sich auf andere Funktionen, die enthalten sind in einer externen js-Dokument. Sie verwenden auch definierten Klassen im externen Stylesheet.

Nun ich habe gerade das laden meiner externen js und css, so dass es verzögert wird (wie von Google empfohlen https://developers.google.com/speed/docs/best-practices/payload?hl=en#DeferLoadingJS):

 if (window.addEventListener)
    window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
    window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;

Diese Weise ist die Seite vollständig gerendert, einschließlich aller Bilder, bevor es beginnt zu laden Sie die JS.

Diese funktioniert einwandfrei. Allerdings Frage ich mich, warum und ob es immer. Nicht $(document).ready() ausgeführt, bevor onLoad? Nicht ich Risiken nicht die erforderlichen Funktionen definiert, wenn $(document).bereit durchgeführt wird?

So, muss ich Wechsel alle $(document).ready, $(document).load()? Oder zumindest einige von Ihnen? Aber dann die onLoad() wird zuerst ausgeführt? Die eine, die Lasten der externen js (die im header definiert) oder der inline? was verliere ich durch den Wechsel bereit zum laden? Könnte ich, zum Beispiel, das Risiko, dass ein Ereignis nicht an ein element klickt ein Benutzer auf das element?

Btw, die jquery-api ist nicht aufgeschoben, denn das verursacht Probleme, wenn ich ging zum ausführen von anderem code.

InformationsquelleAutor user984003 | 2013-01-06

Schreibe einen Kommentar