CLASSE AJAX : PROTOTYPE ROCKS !

cs_Kimjoa Messages postés 262 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 19 septembre 2014 - 8 juin 2008 à 21:04
djmmix Messages postés 152 Date d'inscription lundi 28 juillet 2003 Statut Membre Dernière intervention 29 avril 2009 - 13 sept. 2008 à 11:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/46941-classe-ajax-prototype-rocks

djmmix Messages postés 152 Date d'inscription lundi 28 juillet 2003 Statut Membre Dernière intervention 29 avril 2009
13 sept. 2008 à 11:52
perso si je fait de l'ajax je prendrai pas c'est framework je créerai mes propres classe ou fonction en fonction de leur utilisation, deja plus léger et surtout adapter sur la webapp que je développerai.
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
10 juin 2008 à 16:27
"Un autre objectif est de pousser les gens à utiliser Prototype..."

>> Non il ne faut pas pousser les gens à utiliser Prototype. Par contre, il est toujours bon de rappeller son efficacité sur des projets de webapps.

"et à "coder comme" du Prototype"

>> Tout à fait d'accord, il est grand temps pour beaucoup de passer à la programmation orienté objet (à la Javascript) et ainsi profiter de tous ses avantages.
ralecul Messages postés 111 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 1 août 2008
10 juin 2008 à 15:40
J'ai peut-être mal choisi le terme "clone", c'est plutôt du Reverse-Engineering avec la source ;-)
Donc j'ai pu copié le fonctionnement du evalScrips mais le reste n'a rien à voir avec la version de Prototype.
Tu peut regarder le code par toi-même et comparer la version de prototype (dans le zip) avec cette version light.

>>Alors quelle est l'utilité de cette source ?
Elle permet de voir comment faire un code qui se comporte comme du Prototype sans Prototype :
passage d'options littérales, utilisation de singleton, méthodes et variables publiques/privées, ...

Un autre objectif est de pousser les gens à utiliser Prototype (et à "coder comme" du Prototype).
Or, un reproche qu'on peut lui faire, si l'on se contente de la classe Ajax, est son poids (100k).
J'ai donc décidé de faire une classe qui se comporte comme celle de Prototype mais en plus léger.
Ainsi les personnes intéressées apprendront la syntaxe avec ma source et passeront plus facilement à Prototype.

PS: Pour moi cette source est plus un exercice de style qu'autre chose.
Je me suis bien amusé à recréer les objets Ajax de Prototype et en ajouter un (?).

Principe de fonctionnement :
----------------------------

Ajax.Request (Objet de base)
Ajax.Updater -> Appel de Ajax.Request avec un onComplete personnalisé
Ajax.PeriodicalUpdater -> Appel de Ajax.Updater dans un setInterval
Ajax.PeriodicalXxx -> Appel de Ajax.Xxx dans un setInterval
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
10 juin 2008 à 14:12
"c'est bien pour ça qu'il faut utiliser Prototype"

Alors quelle est l'utilité de cette source ?
Ce qui aurait été sympa, c'est de sortir complètement l'objet Ajax de prototype (avec toutes ses fonctionnalités) et d'en faire une version 'stand alone'.

Wait and see.
ralecul Messages postés 111 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 1 août 2008
9 juin 2008 à 20:09
Ya une petite surprise pour ceux qui regarde le code-source...
(Une fonctionnalité que j'ai ajouté qui n'est pas présente dans la classe Ajax de Prototype.)

Pour XtremDuke : c'est bien pour ça qu'il faut utiliser Prototype...
Et c'est pour ce genre de petit détail que je n'utiliserais pas ma classe Ajax en production.
Je vais quand même voir si je ne peut pas le rajouter sans trop faire grossir cette classe...

"Même si c'est cloné à prototype, tu as récupéré l'essentiel et c'est tant mieux"
En ce qui concerne ma source elle n'a en réalité que très peu de similitude avec celle de Prototype.
J'ai bien copié le système d'évaluation de script mais les "Classes" Ajax.Request & co sont refaites from scratch.

@+
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
9 juin 2008 à 15:58
Belle initiative qu'est celle de faire un 'vrai' objet Ajax (en comparaison à toutes ses fonctions bancales qu'on peut trouver...).
Même si c'est cloné à prototype, tu as récupéré l'essentiel et c'est temps mieux.

Seul petit regret, tu aurais pus ajouter la méthode qui encode les paramètres (toQueryParams).
ralecul Messages postés 111 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 1 août 2008
8 juin 2008 à 21:57
Salut,

Tu utilises quel navigateur ?
J'ai testé avec IE7, Opera 9.2 et Firefox 2 et j'ai pas d'erreur ...
Essayes de re-télécharger le zip, j'ai corrigé des bugs avec Opera et IE.

Je me suis bien sur inspiré largement de Prototype mais la source est de moi (au cas ou cela ne soit pas clair...)

@+
cs_Kimjoa Messages postés 262 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 19 septembre 2014
8 juin 2008 à 21:04
salut , sympa tas classe, bien pratique pour celui qui n'utilise que l'ajax de la librairie qui pèse bien lourd!! Pour la qualité du code je met 20/10 pour son auteur )))
J'ai un probleme avec le javascriptInside , bizarrement le script bloque au moment du onreadystatechange et ne m'avertis pas d'erreur ...
Encore des ptits beug , allé 8/10 , bye !!