Tach!
Warum soll mit dem Erstellen der Funktion gewartet werden, bis das DOM ready ist? Warum kann der Code nicht bereits früher ausgeführt werden?
Wenn du die Frage nach dem Erstellungszeitpunkt einbringst, solltest du erstmal selber beantworten, warum das denn unbedingt früher gemacht werden müsste.
"Muss" war nicht meine Wortwahl und "muss" war auch nicht gemeint. Da das Anlegen der Funktion ohne das DOM auskommt, kann sie auch außerhalb stehen. Der beabsichtige Lerneffekt war nicht, Best Practice für Großprojekte zu vermitteln, sondern das anscheinend ausbaufähige Wissen um die Möglichkeiten der Platzierung zu erweitern.
Aber um auf die Entscheidungsfindung zurückzukommen, ob es im DOM-Ready oder nicht untergebracht werden sollte: Der Browser kann bereits Javascript-Code ausführen, während er noch auf den Rest des für die DOM-Fertigstellung notwendigen Codes wartet. Zu viel nicht unbedingt benötigtes erst im DOM-Ready auszuführen, kann ich mir auch als ungünstig für eine fluffig ablaufende Anwendung vorstellen. Für diese eine Funktion hat das keine Auswirkungen, aber du wolltest ja auch für größere Anwendungen vorsorgen. Deshalb sei die Überlegung gestattet, ob da nicht auch Teile aus dem DOM-Ready ausgelagert werden können.
Den früheren Erstellungszeitpunkt als Grund anführen zu wollen, die Funktion besser global zu halten, ist meines Erachtens jedenfalls völlig neben der Spur, das hat rein gar nichts mit dem zu tun, worauf ich hinweisen wollte.
Nunja, ich hab eine globale Ablage auch nicht als "besser" bezeichnet. Die bessere Möglichkeit führte ich danach an. Meine ursprüngliche Aussage war auch "muss nicht unbedingt innerhalb von $(document).ready() sein.", was nicht zwangsläufig bedeutet, dass das dann nur noch global zu liegen kommen kann.
Da könntest du auch einwenden, dass die zusätzlichen Leerzeichen für die Codeeinrückung Zeit verschwenden.
Na, jetzt begibst du dich aber in große Gefahr, die Spur zu verlassen. Wir sollten schon realistisch bleiben.
Wenn allerdings das Projekt klein genug bleibt, dann lohnen sich diese Betrachtungen kaum.
Und du weisst genau, dass dieses und alle anderen Projekte klein genug bleiben. Nein? Dann wäre es sinnvoll, entsprechend zu antworten.
Natürlich weiß ich das nicht. Aber ich weiß auch nicht, was für den Fall "entsprechend" ist. "Entsprechend" kann jedenfalls nicht sein, alles auf das größtmögliche Projekt auszulegen.
Ich bin auch nicht in der Position, das für dieses Projekt absolut richtige antworten zu können oder gar zu müssen. Natürlich werde ich nichts absichtlich falsches antworten und meine Antworten anpassen, wenn mir neue Anforderungen offenbart werden oder ich das Problem besser verstehe. Gleichwohl liegt es in meiner Absicht, dass der Probleminhaber nicht nur eine kopierfertige Lösung bekommt, sondern vor allem die Möglichkeiten kennenlernt und selbst den Weg zu seinem Ziel geht. Dazu zählt auch, dass Verständnis, dass Dinge auch anderswo liegen können als im DOM-Ready. Letztlich jedenfalls muss es die Entscheidung des Anwendungserstellers bleiben, was wo liegt und wie schön das dann aussieht. Wenn er sich in Punkto Code-Qualität verbessern möchte, sollte er das auch zum Ausdruck bringen, sonst stecke ich in den Aspekt auch nicht übermäßig Herzblut rein. Ist ja nicht mein Projekt. Am Ende interessiert es ihn vielleicht gar nicht, dass es schön aussieht. (Wahrscheinlich muss ich auch hier wieder den Disclaimer anbringen, dass ich auch nicht absichtlich schlechte Vorschläge unterbreite.)
dedlfix.