[JS] Ajax class
1 statische functie setHandlers waar je twee handler functies kan invoegen die automatisch uitgevoerd worden. De functies worden toegevoegd aan de class Ajax, niet aan het object.
Het object wordt met elke request opnieuw gemaakt. Daar stop je ook een functie in (of niet) die wordt uitgevoerd als je request klaar is (die staat in het object, dus is request specifiek).
De busy variable staat in het object en in de class, omdat ze met elkaar vergeleken worden. De busy van de class (laten we het static noemen) is namelijk het session id van de laatste request. De busy van het object is het session id van die request. Als een request klaar is worden de busy session id's vergeleken -> zijn ze hetzelfde, dan is de laatste Ajax sessie net afgelopen, dus is Ajax niet busy.
Een voorbeeldje van setHandlers:
2
3
4
5
6
7
8
9
10
11
12
13
14
Ajax.setHandlers({
'onComplete' : function()
{
if ( !Ajax.busy )
{
$('loading').style.display = 'none';
}
},
'onStart' : function()
{
$('loading').style.display = 'block';
}
});
En een voorbeeldje van een ajax request:
2
3
4
5
6
7
8
9
10
11
12
13
{
szZone = f_objForm['zone_id'].options[f_objForm['zone_id'].selectedIndex].text;
szAction = f_objForm['action_id'].options[f_objForm['action_id'].selectedIndex].text;
new Ajax('?test_zone=' + escape(szZone) + '&test_action=' + escape(szAction) + '&test_user=' + escape(f_objForm['test_user'].value) + '', {
'method' : 'get',
'onComplete' : function(ajax)
{
alert(ajax.responseText);
}
});
return false;
}
Note: De variabele die meegegeven wordt in de onComplete functie van je Ajax request is het XmlHttp object (google voor properties en methods)!
Note: Als je een get request wil maken moet je niet de parameters in 'params' zetten! Alleen post body hoort daar! 'params' wordt alleen gebruikt als de method POST is.
Veel plezier ermee.
ps. Je mag het natuurlijk gebruiken en veranderen hoe je wilt, maar ik zou graag een mailtje of commentaar hebben als je iets verbetert. Het zou kunnen dat ik dingen vergeten ben of gewoonweg inefficient doe. Laat me dan weten aub. Dank.
Gesponsorde koppelingen
PHP script bestanden
Er zijn 9 reacties op 'Js ajax class'
Om te reageren heb je een account nodig en je moet ingelogd zijn.
PHP hulp
0 seconden vanaf nu