Gestionnaire de classes Javascript avec Ajax.

Gestionnaire de classes Javascript avec Ajax.

En travaillant avec Flash en Actionscript 2, j'ai pris l'habitude d'utiliser des fichiers de classes uniques présentées hiérarchiquement dans une arborescence de dossiers. On utilise chaque classe à partir d'une autre en utilisant la directive *import*. Ce système est trés répandu dans les langages de programmation orientés objet (Actionscript, C#, Java etc...).

Mon premier réflexe en travaillant en javascript a été d'essayer de reproduire ce système hiérarchique vraiment trés pratique. C'est pourquoi il a déjà un petit moment de ça, j'avais crée un système de chargement de fichiers permettant de recréer ce principe en Javascript pour faire mes premiers pas avec Ajax. J'ai eu l'occasion récemment de ressortir ce projet des cartons, je voulais vous en faire profiter.

Accéder à la page complète du projet AjaxClassLoader.

Commentaires

Très intéressant !
Je vais essayer de mettre en application dès mon prochain projet !
Merci

Je viens de tester ton gestionnaire avec un de mes scripts, ça marche nickel sous FF et IE6.
Par contre il y a une erreur sous IE7 !

Autant pour moi pour la version d’IE7, ça fonctionne vraiment très bien … Les options d’Internet Explorer 7 ne sont appliquées qu’une fois le navigateur redémarré… Mea culpa !
Je comprendrais que tu veuilles supprimer mon dernier commentaire…

Il n’y a pas de soucis. En fait je pense re-éditer la page du projet pour indiquer que ça marche tout aussi bien sur Opera, Firefox, Mozilla, Safari, Internet Explorer 5->7.

Je vais également simplifier les explications en mettant en entête de page une comparaison d’une application AS2 vs une application Javascript avec ce systéme, je pense que ça sera nettement plus parlant pour les intéressés hésitant à franchir le pas.

Il semblerai que le nom des packages ne puissent pas commencer par des chiffres or le nom de domaine de mon entreprise est 1001reves.com… Je ne suis pas arriver à résoudre ce problème… Qqn aurait-il une idée ? Peut-être est-ce déjà prévu pour une prochaine version ?

Caedes, en Javascript comme en Actionscript, tu ne peux pas faire démarrer tes noms de variables (du coup packages et classes) par des chiffres. Ni MTASC ni le compilateur Flash ne le permettent, comment fais-tu en Actionscript ?

Dans le meilleur des cas on pourrait à la rigueur utiliser la syntaxe à crochets en AS1, mais ce serait bien se compliquer la vie pour pas grand chose. Honnêtement je ne te conseilles pas de prendre cette habitude. "com.milleunreves.MyClass" n’est pas préférable ?

Sinon, j’ai quand même résolu ton probléme, mais je ne l’intégrerais pas dans les prochaines mises à jour, je suis désolé. Dans *AjaxClassLoader.js*, il te suffit de remplacer la premiére ligne de la méthode *AjaxClassLoader.load* :

try{var oPath = eval(path)}catch(error){}
par
try{var oPath = eval(‘window["'+path.split('.').join('"]["')+'"]‘)}catch(error){}

et la derniére ligne :
return eval(‘window.’ + path);
par
return eval(‘window["' + path.split('.').join('"]["') + '"]‘);

Ça te permet de déclarer tes classes avec quelque chose comme :
var MySuperClass = AjaxClassLoader.load(‘com.1001reves.myclasspath.MySuperClass’);
Mais comme je te l’ai dit, je ne te le conseilles pas.

Merci pour ce rappel de nommage que j’avais oublié, faisant peu d’AS en ce moment…

… c’est pour ca que le nom du package est com.reves et pas com.1001reves :)

Ah ah, oui j’ai oublié de te demander entre-temps. ;)

Du coup effectivement reves c’est encore plus court donc forcement mieux .

Ohoh, ç am’a pas l’air mal du tout, j’commence seulement a me mettre au javascript et ceci va m’ètre utile :)

Thanks :p

pa mal

Hé ! Moi aussi j’vais jeter un oeil à ça ! Thanks !

Je test ça de suite, merci !

Laisser un commentaire

Javascript doit être activé pour pouvoir poster

  rss rss english xhtml 1.1 css 2.0 wdg