Ik vind heel wat dit materiaal AJAX een beetje van hype. Veel mensen hebben
gebruikend gelijkaardige dingen long before het „AJAX“ werd. En het werkelijk
is niet zo ingewikkeld aangezien heel wat mensen het opmaken te zijn. Hier is a
eenvoudig voorbeeld van één van mijn apps.
/* JAVASCRIPT OM DE INFRASTRUCTUUR TOT STAND TE BRENGEN AJAX */
/* FUNCTIE OM HET BROWSER-AFHANKELIJKE VOORWERP VAN HET VERZOEK TOT STAND TE BRENGEN */
functie createRequestObject ()
{
var ro;
var browser = navigator.appName;
als (browser == „Microsoft Internet Explorer“)
{
ro = nieuwe ActiveXObject („Microsoft.XMLHTTP“);
} anders
{
ro = nieuwe XMLHttpRequest ();
}
terugkeer ro;
}
/* FUNCTIE OM HET VERZOEK TE VERZENDEN */
functie sendReq (actie)
{
http.open („krijg“, 'ajaxprocessor.php? action='+ actie);
http.onreadystatechange = handleResponse;
(ongeldig) http.send;
}
/* FUNCTIE OM DE REACTIE TE BEHANDELEN */
functie handleResponse ()
{
als (http.readyState == 4)
{
var reactie = http.responseText;
var update = nieuwe Serie ();
als (response.indexOf („|“! = -1))
{
update = response.split („|“);
document.getElementById (update [0]) .innerHTML = update [1];
}
}
}
/* CRE�ëR HET VOORWERP */
var HTTP = createRequestObject ();
/* EIND VAN JAVASCRIPT */
Dit leidt tot een verzoekvoorwerp samen met verzendt verzoek en handvat
reactie functie. Zo om het eigenlijk te gebruiken, kon u dit js binnen omvatten
uw pagina. Dan om één van deze achterste deelverzoeken in te dienen zou u het binden
aan iets. Als een onclickgebeurtenis of een rechte href als dit:
[Foo]
Dat betekent dat wanneer iemand op die verbinding klikt wat eigenlijk gebeurt
is dat een achterste deelverzoek aan ajaxprocessor.php? action=foo zal worden verzonden.
In ajaxprocessor.php zou u iets in die aard kunnen hebben:
/* PHP OM HET VERZOEK VAN HET FRONT-END MANUSCRIPT TE BEHANDELEN */
schakelaar ($_GET [„actie“])
{
geval „foo“:
// DOET WELK VERWERKING OOK AANGEWEZEN IS
// KOMT DAN EEN KOORD VAN DE REACTIE OP handleResponse () TERUG
echo „foo|Gedaane Foo“;
onderbreking;
// etc….
}
Nu, bekijk handleResponse. Het ontleedt „foo|Foo gedaan“ koord en
verdeelt het op „|“ en gebruik wat er ook vóór „is|“ als dom
elementen identiteitskaart in uw pagina en het deel na als nieuwe innerHTML van dat
element. Dat betekent als u een afd.markering als dit in uw pagina hebt:
Het wachten op Foo
Zodra u op die verbinding klikt, zal dat dynamisch veranderd worden:
Gedaane Foo
Dat is allen daar is aan het. Al het andere bouwt enkel bovenop
dit. Vervangend mijn eenvoudige reactie „identiteitskaart|tekst“ syntaxis met een rijkere XML
formaat en het indienen van het verzoek eveneens ingewikkelder. Vóór u
installeer blind grote bibliotheken „AJAX“, hebben bij uw rollen gaan
de functionaliteit zodat u weet precies hoe het werkt en u maakt het slechts zoals
ingewikkeld aangezien u nodig hebt. Vaak hebt u geen veel meer nodig dan wat I
hier hebben getoond.
Uitbreidt deze benadering een beetje om veelvoudige parameters in te verzenden
het verzoek, bijvoorbeeld, zou werkelijk eenvoudig zijn. Iets als:
functie sendReqArg (actie, arg)
{
„krijg“ http.open (, 'ajaxprocessor.php? action='+ action+'& arg='+ arg);
http.onreadystatechange = handleResponse;
(ongeldig) http.send;
}
En uw handleResponse kan gemakkelijk worden uitgebreid om interessanter te doen
dingen dan enkel vervangend de inhoud van afd.
- Rasmus (Lerdorf?)
|