[AJAX] ajax et PHP sans XmlHttpRequest Object

Eléphant du PHP | 353 Messages

02 mai 2006, 12:57

Vous souhaitez rendre des champs modifiable sans recharger la page !!

Voici une solution AJAX sans XmlHttpRequest Object

http://www.phpit.net/article/ajax-php-w ... tprequest/

Je l''utilise personnellement et ça fonctionne à merveille

:wink:

ViPHP
ViPHP | 1024 Messages

03 mai 2006, 17:20

ça me parait assez simple à mettre en oeuvre (contrairement à AJAX avec XHR )

quels sont les problèmes que tu as rencontrés avec cette méthode?
quelles sont les limitations?

A+

Pascal

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

03 mai 2006, 17:59

En vrac, ce qui me vient à l'esprit pour les limitations :
  • C'est du Ajax sans le X (ça franchement, je n'en ai cure)
  • C'est un chargement de script, en sachant qu'un script ça ne se décharge pas, on a vite fait de faire sombrer le navigateur dans un memory leak, ou en tous cas de voir les performances de son appli web s'écrouler. Et ça c'est pas terrible. Dans tous les cas ça dépendra du navigateur, mais le risque est là.
  • Je pense que générer un <script src="..."> après exécution de la page peut ne pas fonctionner sur certains navigateurs. À vérifier, mais ça a l'air de fonctionner sur les principaux navigateurs (au passage : ceux qui supportent également XHR).
  • Cela nécessite que le navigateur supporte le DOM correctement, ce qui implique a priori que ce navigateur a l'objet XHR integré, autant utiliser ce qui existe alors, non ? ;) D'autant que l'objet XHR étant "internal" il y a sûrement un gain de performance à l'utiliser plutôt qu'une méthode tierse.
  • Cela ne permet pas de gérer l'état d'une requête (réponse du serveur : 404, 200, 403, etc...) et d'agir selon.
  • Cela ne permet pas de faire de requête avec la méthode POST.
À première vue je ne vois pas d'autres inconvénients, je dirais que ça convient bien pour de petites applications ponctuelles qui n'ont pas besoin de beaucoup d'échanges client-serveur (pour éviter la menace du memory-leak), mais pour du plus "sérieux" je ne m'y risquerais pas.

D'autant plus que l'objet XHR est maintenant facilement camouflé dans des frameworks Ajax de très bonne facture tous autant qu'ils sont, et permet sans perte de performances (pour peu qu'on ne charge que ce dont on a besoin, par exemple sur script.aculo.us) d'utiliser l'Ajax de manière très simple. Exemple avec Script.Aculo.Us (justement) :

Code : Tout sélectionner

new Ajax.Request('/server.php', { method: 'post', postBody: 'var1=val1&var2=val2', onSuccess: function(req) { alert("Success ! ResponseText = "+req.responseText); }, onFailure: function(req) { alert("Error ! Status = "+req.status+" - "+req.statusText); } });
C'est quand-même plus complet (gestion d'erreur, méthode post), et pas si compliqué ;)

Eléphant du PHP | 353 Messages

04 mai 2006, 08:07

ok je comprend ce que tu veux dire !! moi j'utilise ca pour pouvoir ajouter des éléments dans une page sans la recharger.

Aurais-tu des bonnes adresses pour apprendre un peu mieux l'AJAX ?

Merci

Eléphant du PHP | 377 Messages

04 mai 2006, 11:40

Petit scarabée deviendra grand

Eléphant du PHP | 353 Messages

04 mai 2006, 13:25

merci , je vais lire attentivement ;)