Page 1 sur 1

[AJAX] ajax et PHP sans XmlHttpRequest Object

Posté : 02 mai 2006, 12:57
par Tictac
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:

Posté : 03 mai 2006, 17:20
par pascaltje
ç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

Posté : 03 mai 2006, 17:59
par naholyr
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é ;)

Posté : 04 mai 2006, 08:07
par Tictac
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

Posté : 04 mai 2006, 11:40
par Shrell

Posté : 04 mai 2006, 13:25
par Tictac
merci , je vais lire attentivement ;)