Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CLASSE AJAX : PROTOTYPE ROCKS !


Information sur la source

Catégorie :Divers Classé sous : ajax, prototype, xmlhttprequest, classe, singleton Niveau : Expert Date de création : 08/06/2008 Date de mise à jour : 08/06/2008 20:09:57 Vu / téléchargé: 2 703 / 164

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Le but n'est pas de présenter ici une énième classe Ajax mais de vous suggérer de passer à prototype.
Il existe une foultitude de classe Ajax qui fonctionnent plus ou moins bien et qui sont plus ou moins bien pensées...
Je vous propose donc une classe Ajax de 4k qui fonctionne PRESQUE comme celle de prototype.

L'idée est que si vous n'êtes pas encore passé à Prototype (shame on you ;-) vous pouvez essayez cette version réduite.
Ensuite lorsque vous trouverez des bugs ou des fonctionnalités manquantes, vous vous tournerez alors vers une version plus sérieuse (ie : prototype) !

La version de Prototype et cette version ne sont pas tout à fait compatible : voir le fichier documentation.html pour la liste des options clonées.
Cependant si vous n'utilisez que les options de base cela fonctionne : dans le fichier index.html on peut switcher entre les deux versions.
Il suffit de commenter l'insertion de "js/Ajax.js" ou de "js/prototype.js".
Bien sur ce n'est pas une bonne idée d'inclure les deux versions en même temps...
 

Source

  • //Tout est dans le zip
//Tout est dans le zip

Conclusion

Cette version est plus une "proof of concept", son utilisation en production est vivement déconseillée.
En revanche l'abus de Prototype est encouragé !
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

08 juin 2008 18:45:14 :
Il faut mettre une explication ? (même quand on ne fait que modifier la prévisualisation)
08 juin 2008 18:55:41 :
J'ai remis l'intervalle de l'autoUpdater à 1 seconde.
08 juin 2008 19:39:43 :
Ajout header à random.php (sinon IE met en cache en mode GET) evalScripts ne marche qu'avec Firefox pour l'instant ;-(
08 juin 2008 20:09:57 :
evalScripts fonctionne désormais avec IE7 et Opera (Ajout de la méthode Array.map)

Commentaires et avis

signaler à un administrateur
Commentaire de Kimjoa le 08/06/2008 21:04:22 8/10

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

signaler à un administrateur
Commentaire de ralecul le 08/06/2008 21:57:53

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

@+

signaler à un administrateur
Commentaire de XtremDuke le 09/06/2008 15:58:08

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

signaler à un administrateur
Commentaire de ralecul le 09/06/2008 20:09:47

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.

@+

signaler à un administrateur
Commentaire de XtremDuke le 10/06/2008 14:12:34

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

signaler à un administrateur
Commentaire de ralecul le 10/06/2008 15:40:22

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

signaler à un administrateur
Commentaire de XtremDuke le 10/06/2008 16:27:03

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

signaler à un administrateur
Commentaire de djmmix le 13/09/2008 11:52:44

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.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Rechargement d'objet "AJAX" [ par benjiman2 ] Bonjour !Voila, je commence tout juste a programmer en AJAX ...et voila mon probleme ...Je voudrai que chaque 2 secondes, la page se rafraichisse dans AJAX - XMLHttpRequest - il ne veux pas afficher [ par jnbdzjnbdz ] Bonjour je viens de commencer avec ajax. Et je suis déjà entrain de développer une petite application web. Si vous aller ici:<a target="_blank" hr Ajax et IE7 [ par arnaultp ] Bonjour à tous!Je viens de me mettre à l'AJAX, et en reprenant un tutorial j'ai une erreur (voire 2 d'ailleurs) qui apparaît et que je n'arrive pas à Ajax : variable de réponse [ par chapata ] Bonjour à tous,(j'espère avoir posté dans le bon endroit ...)voilà je suis débutant en Ajax, je me suis inspiré des différentes méthodes sur le forum. Envoi de fichiers via XMLHttpRequest [ par ov3rdoze ] Bonjour à tous. Je cherche (désespérement) si il est possible d'envoyer des fichiers sélectionnés dans un <input type="file" avec="" xmlhttprequest=" prototype.js --> bindAsEventListener [ par alexflex25 ] var obj = { name: 'A nice demo' };function handler(e)< ajax & les dates! [ par davidbdjt2 ] bonjour,J'ai besoin de faire exactement ce que lont voit sur ce lien:http://xavier.merrheim.free.fr/date/en effet le fichier principal lance via ajax AJAX, textarea et envoie de code html [ par Jolafreem ] Bonjour,je développe une interface d'administration en AJAX.Voici le problème auquel je suis confronté :J'ai un textarea qui contient du code HTML et Ecoute d'un event d'une classe [ par guepard53 ] Bien le bonjour,j'ai fait une classe JS permettant d'afficher une datagrid avec paging, tri, ajout, suppression, edition, ... En gros, je passe un arr COMMUNICATION AVEC LE SERVEUR EN MODE ASYNCHRONE(XMLHTTPREQUEST) [ par koriteki ] Bonjour, j'ais un problème assez simple, dans les lignes ci-dessous CQD ou SOS ne s'affiche pas...(ajax-get.html)&lt;!DOCTYPE html PUBLIC "-//W3C//DTD


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.