Sæll,
Þetta snýst aðallega bara um að kunna að nota XMLHttpRequest hlutinn, þekkja vel útá hvað XML gengur og svo síðast en ekki síst DOM-ið (Document object model).
Ég er að nota þetta töluvert í einu verkefni í vinnunni núna, get því miður ekki share-að því þar sem þetta er Innranet fyrir ákveðið stórfyrirtæki hér í bæ.
Reyndar er þetta AJAX alls ekkert nýtt af nálinni. Þetta hefur verið hægt í IE alveg síðan í 5.5, jafnvel 5.0. Það er núna fyrst sem þetta er að ná einhverjum vinsældum eftir að “allir” betri vafrar fóru að styðja XMLHttpRequest, (Mozilla, Opera, Safari etc.).
Þetta snýst semsagt aðallega um að nota XMLHttpRequest til að lesa upp skjöl (XML skjöl) í bakgrunni, taka niðurstöður og nota DOM-ið til að skrifa út HTML eða bæta þeim inní documentið með DOM aðgerðum.
Hér er smá kóðabútur sem má segja að sé undirstaðan í þessu öllu:
function httpRequest(url,method)
{
var xmlhttp = false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
if (method == '') method = 'GET';
xmlhttp.open(method, url,false);
xmlhttp.send(null)
return xmlhttp.responseText
}
Með þessu geturðu t.d búið til einfalt HTML skjal, skellt einum hnappi í skjalið og látið onclick á hnappinum kalla í þetta fall, og gefið upp slóð á t.d eitthvað php skjal. PHP skjalið skrifar út einhver gögn úr gagnagrunni, þarf í rauninni ekki að vera XML í þessu tilviki þar sem ekki er verið að parsa gögnin sem XML.
Niðurstöðuna úr kallinu gætirðu svo t.d sett inn í DIV á þennan hátt:
<script type="text/javascript">
function get(url)
{
var content = httpRequest(url,'');
document.getElementById('container').innerHTML = content;
}
</script>
<input type="button" value="Sækja!" onclick="get('/page.php?id=2');" />
<div id="container">
</div>
Þetta er svona einfalt dæmi bara til að sýna hvernig er hægt að nýta þetta.
Annars er ég fullkomnlega sammála því sem hefur komið fram hérna að þetta brýtur algjörlega í bága við öll aðgengisviðmið sem er alltaf verið að hamra meira og meira á í dag, t.d varðandi blinda notendur o.þ.h.
Held að þetta ætti að vera notað sparlega og bara í verkefni sem þetta passar í.