Hallo liebe Forumsbesucher,
jetzt beschäftige ich mich schon sooo lange mit Javascript, bin aber nicht in der Lage, folgende Frage zu beantworten:
------------------------------
Angenommen meine HTML-Seite bindet im Header zuerst die Datei A.js und dann B.js ein. Kann ich jetzt in B.js ZUVERLÄSSIG Funktionen von A.js aufrufen?
------------------------------
Meines Wissens nach parst doch der Browser den HTML-Code und sendet pro einzubindendem Header (also <script>-Tag) eine asynchrone(?) Anfrage nach der Datei an den Server. Im Falle dass A.js sehr groß und B.js sehr klein ist (und da per default min. 2 HTTP-Verbindungen gleichzeitig offen sein können), könnte doch B.js bereits vollständig geladen sein, A.js aber noch nicht. Dann werde ich doch sicherlich in B.js JS-Fehler bekommen, oder?
Genau das war z.B. der Fall als ich vor nem halben Jahr mal versucht hab mit AJAX JS-Header On-Demand nachzuladen (siehe http://ajaxpatterns.org/On-Demand_Javascript). Damals hab ich die Downloads praktisch manuell synchronisiert. Das heißt ich hab die Downloads in ne Warteschlange gesteckt und den nächsten erst gestartet, wenn der vorherige vollständig geladen war. Letzteres hab ich durch einen speziellen Methodenaufruf am Ende jedes nachzuladenden Header kenntlich gemacht.
Meine jetztige Frage bezieht sich aber erstmal nicht auf den AJAX-Fall, sondern auf eine stink-normale HTML-Seite mit mehreren Headern. Ich meine prinzipiell sind doch heute alle AJAX-Bibliotheken nach dem modularen Muster aufgebaut. Zum Beispiel YUI: die fordert, dass zuerst das modul "yahoo.js" eingebunden werden muss bevor ich beispielsweise mit dem modul "event.js" arbeiten kann. Laut Doku reicht es immer die Header in der richtigen Reihenfolge einzubinden. Intern habe ich da auch keine Prüfung auf fertig geladene Abhängigkeiten gefunden...
Wär super wenn ihr mir euer Wissen mitteilen könntet.
Danke,
Moritz