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.

13 Replies to “Gestionnaire de classes Javascript avec Ajax.”

  1. 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 !

  2. 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…

  3. 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.

  4. 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 ?

  5. 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.

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

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

  7. 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

Leave a Reply

Your email address will not be published. Required fields are marked *

*

* Please Add the Values