Bonjour à tous,
Depuis quelques temps, je bosse pas mal avec Jquery et Jquery-ui pour créer des composants javascript et j'admets gagner un temps fou grâce à toutes les ressources et plug-in disponibles rapidement sur la toile.
Il y a cependant quelque chose qui me perturbe encore, c'est la notion de namespace au sein de ce framework qui si je ne me trompe pas est quasi inexistante.
A la base, je viens plutôt d'un monde où le code est organisé dans des package (Java, Actionscript). Il est donc possible de choisir une implémentation différente en fonction du package que l'on souhaite importer.
Certains me diront que c'est possible tout simplement en considérant que la phase d'import correspond à la balise <script> en HTML mais il peut arriver que dans certains cas d'utilisation, 2 fichiers utilisant le même nom de plug-in puissent être importés non ?
Au niveau de la communauté, j'ai vu que certaines personnes préfixent leurs fonctions avec un namespace :
D'autres préfixent le namespace de base :
Il y en a même qui ont crée un plug-in jquery $.namespace
Pour l'instant j'ai choisi la première solution, mais je trouve pas ça vraiment très propre...
Et vous, quelle solution avez-vous choisie / choisiriez-vous ?
Est-ce qu'il y a un moyen plus propre de gérer des espaces de nom en Jquery ?
Depuis quelques temps, je bosse pas mal avec Jquery et Jquery-ui pour créer des composants javascript et j'admets gagner un temps fou grâce à toutes les ressources et plug-in disponibles rapidement sur la toile.
Il y a cependant quelque chose qui me perturbe encore, c'est la notion de namespace au sein de ce framework qui si je ne me trompe pas est quasi inexistante.
A la base, je viens plutôt d'un monde où le code est organisé dans des package (Java, Actionscript). Il est donc possible de choisir une implémentation différente en fonction du package que l'on souhaite importer.
Certains me diront que c'est possible tout simplement en considérant que la phase d'import correspond à la balise <script> en HTML mais il peut arriver que dans certains cas d'utilisation, 2 fichiers utilisant le même nom de plug-in puissent être importés non ?
Au niveau de la communauté, j'ai vu que certaines personnes préfixent leurs fonctions avec un namespace :
$("#mySelector").myProject_function();
D'autres préfixent le namespace de base :
$.fn.ui_dialog = $.fn.dialog;
$.widget( "custom.dialog", {
_create: function() {
this.element.css( "background-color", "red" );
}
});
$( "#dialog1" ).ui_dialog();
$( "#dialog2" ).dialog();
Il y en a même qui ont crée un plug-in jquery $.namespace
Pour l'instant j'ai choisi la première solution, mais je trouve pas ça vraiment très propre...
Et vous, quelle solution avez-vous choisie / choisiriez-vous ?
Est-ce qu'il y a un moyen plus propre de gérer des espaces de nom en Jquery ?