molily: Script nachladen falls benötgt

Beitrag lesen

Du musst also irgendwie warten, bis die Methoden und Variablen zur Verfügung stehen. Dieses könnte per setInterval geschehen (s. Antwort von nam). Du könntest aber auch am Ende des Scripts eine Funktion aufrufen, in der es weiter geht.

Klar, ich könnte mit einem load-Handler arbeiten, was sehr robust funktioniert. createElement(script).onload = handler.

Das würde jedoch die API von meinem Script auf den Kopf stellen und verkomplizieren. Wie gesagt gehts um das Speichern von Daten, und wenn man sie auslesen will, sollte man schreiben können:

var daten = meinScript.get("key");
// mach direkt was mit den Daten

Das ist ziemlich geradlinig und intuitiv. Wenn ich mit load-Handlern arbeite, muss ich die API wie folgt ändern:

meinScript.get("key", function (daten) {
   // mach asynchron was mit den Daten
});

Gut, das ist jetzt nichts ungewöhnliches und für Profis ohnehin vertraut. Große modulare Scripte, die Komponenten automatisch nachladen, arbeiten notwendigerweise entweder so (YUI Loader) oder synchron (dojo.require). Allerdings werden bereits einfache Aufgaben durch diese Schreibweise sehr komplex, man muss sich über Closures und Binding Gedanken machen, um mit Callbacks vernünftig arbeiten zu können. Für große Frameworks mag das okay sein, aber so hoch will ich bewusst nicht hinaus, es soll möglichst einfach zu nutzen sein.

Mathias