L’Ajax avec Prototype, jQuery, MooTools
par Kevin- Publié:25 janvier 2008
- Commentaires:3 Commentaires
- Catégorie:Divers
Pour ceux qui souhaitent ce mettre à l’Ajax, mais qui trouve la syntaxe de celui-ci trop lourde, voici un petit article sur l’utilisation de l’Ajax avec trois des plus gros frameworks JavaScript.
Mais avant tout, si quand je dis Ajax vous pensez à une marque de lessive, à l’un des héros de la guerre de Troie ou pire … je ne peux que vous conseiller d’aller faire un tour sur ces sites :
- http://fr.wikipedia.org/wiki/Asynchronous_JavaScript_and_XML
- http://www.commentcamarche.net/ajax/ajax-intro.php3
- http://www.xul.fr/xml-ajax.html
Environnement
Nous allons dans un premier temps mettre en place les 2 pages que nous utiliserons pour nos tests.
La première page sera ajax.php :
-
<?php
-
switch $_POST[‘ajax’] {
-
case ‘date’:
-
break;
-
case ‘ip’:
-
break;
-
default:
-
echo ‘Hello !’;
-
}
-
}
-
?>
Petite analyse du code : on renvoi la timestamp, l’ip ou un message selon la valeur envoyé en POST.
Le seconde page maintenant, index.html :
-
<script type="text/javascript">
-
function changeList(el) {
-
// Emplacement du Script
-
}
-
</script>
-
<select id="list" onchange="changeList(this)">
-
<option>none</option>
-
<option>date</option>
-
<option>ip</option>
-
</select>
Note : n’oubliez pas d’inclure le framework que l’on utilisera
JavaScript
Avant d’utiliser une framework, nous allons voir la tête du script sans framework.
-
function changeList(el) {
-
var xhr;
-
try { xhr = new XMLHttpRequest(); }
-
catch (e) {
-
xhr = new ActiveXObject(Microsoft.XMLHTTP);
-
}
-
-
xhr.onreadystatechange = function () {
-
if (xhr.readyState == 4)
-
if (xhr.status == 200)
-
alert(xhr.responseText);
-
else
-
alert(xhr.status);
-
}
-
-
xhr.open(’POST’, ‘ajax.php’, true);
-
xhr.setRequestHeader(”Content-type”, “application/x-www-form-urlencoded”);
-
xhr.send(’ajax=’ + el.options[el.selectedIndex].value);
-
}
Assez lourd n’est-ce pas ?
Prototype
-
function changeList(el) {
-
new Ajax.Request(’/ajax.php’, {
-
method: ‘post’,
-
parameters: {’ajax’: el.options[el.selectedIndex].value},
-
onSuccess: function(xhr) {
-
alert(xhr.responseText);
-
},
-
onFailure: function(xhr) {
-
alert(’Error’);
-
}
-
});
-
}
Déjà plus léger.
jQuery
-
function changeList(el) {
-
$.ajax({
-
type: ‘POST’,
-
url: ‘ajax.php’,
-
data: ‘ajax=’ + el.options[el.selectedIndex].value,
-
success: function(msg) {
-
alert(msg);
-
},
-
error: function() {
-
alert(’Error’);
-
}
-
});
-
}
MooTools
-
function changeList(el) {
-
var ajax = new Ajax(’ajax.php’, {
-
method: ‘POST’,
-
data: ‘ajax=’ + el.options[el.selectedIndex].value,
-
onComplete: function(msg) {
-
alert(msg);
-
},
-
onFailure: function() {
-
alert(’Error’);
-
}
-
}).request();
-
}
Besoin de conclure ? On voit rapidement que l’utilisation de l’un des frameworks simplifie grandement la chose. Tout simplement efficace et productif !


3 Commentaires
Intéressant de voir ces quatre solutions ensemble.
Bonne idée.
Merci =)
Excellent, je crois que je vais le reprendre sur une slide de formation, si tu en es d’accord.