En parlant d'AJAX...
By Geoffrey on Tuesday 22 November 2005, 11:34 - Coding - Permalink
Restons hype, après avoir parlé de l'ignoble incrémentation de version du web (cf billet précédent), parlons du phénomène (relativement) à l'origine de toute cette folie, j'ai nommé le bienheureux XMLHttpRequest.
Voilà une approche toute bête à AJAX, un peu repompé sur le MDC (pour la création de l'objet XMLHttpRequest) et sur GreaseMonkey (pour le concept):
function xmlHttpRequest(conf) { var xmlhttp = false; if (window.XMLHttpRequest) { // Mozilla, Safari, ... xmlhttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { // IE try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!xmlhttp) { alert('can not create a xmlhttprequest object instance'); return false; } xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { conf.callback(xmlhttp); } } xmlhttp.open(conf.method, conf.url); xmlhttp.send(null); }
Concrètement, dans la pratique, ça donne un truc comme ça:
function refreshMonths(year) { xmlHttpRequest({ 'method': 'POST', 'url': '<?php echo BASE_URI; ?>/xmlhttp/getmonths.php?year='+year, 'callback': function(xmlhttp) { getE('s-month').innerHTML = xmlhttp.responseText; } }); }
Bon bien sur, quelque part on a forcément un truc genre:
function getE(id) { return document.getElementById(id); }
(ça c'est pompé sur dotclear).
Comments
Ma contribution : http://xhrconnection.sutekidane.net
:)
sympa Thanh, faudra que jregarde ça de plus près tiens