Je trouve beaucoup de cette substance d'AJAX un peu d'une exagération. Un bon nombre de gens ont
l'utilisation des choses semblables longtemps avant elle est devenue « AJAX ». Et il vraiment
n'est pas aussi compliqué que beaucoup de personnes le font dehors pour être. Voici a
exemple simple d'un de mes apps.
/* LE JAVASCRIPT POUR CRÉER L'INFRASTRUCTURE D'AJAX *
FONCTION DE/* POUR CRÉER L'OBJET DE DEMANDE DE BROWSER-DEPENDENT *
createRequestObject de fonction ()
{
RO de variété ;
navigateur de variété = navigator.appName ;
si (== « Microsoft Internet Explorer » de navigateur)
{
RO = nouvel ActiveXObject (« Microsoft.XMLHTTP ») ;
} autrement
{
RO = nouveau XMLHttpRequest () ;
}
RO de retour ;
}
FONCTION DE/* POUR ENVOYER LA DEMANDE *
sendReq de fonction (action)
{
http.open (« obtenir », 'ajaxprocessor.php ? action d'action='+) ;
http.onreadystatechange = handleResponse ;
http.send (nulle) ;
}
FONCTION DE/* POUR MANIPULER LA RÉPONSE *
handleResponse de fonction ()
{
si (== de http.readyState 4)
{
réponse de variété = http.responseText ;
mise à jour de variété = nouvelle rangée () ;
si (response.indexOf (« | » ! = -1))
{
mise à jour = response.split (« |") ;
document.getElementById (mise à jour [0]) .innerHTML = mise à jour [1] ;
}
}
}
/* CRÉENT L'OBJET *
variété HTTP = createRequestObject () ;
FIN DE/* DU JAVASCRIPT *
Ceci crée un objet de demande avec une demande et une poignée d'envoi
fonction de réponse. Pour l'employer ainsi réellement, vous pourriez inclure ce des js dedans
votre page. Vous faire alors à une de ces demandes principales l'attacherait
à quelque chose. Comme l'événement d'un onclick ou un href droit aimer ceci :
[Foo]
Cela signifie cela quand quelqu'un clique dessus ce lien ce qui se produit réellement
est-ce que c'est une demande principale à ajaxprocessor.php ? l'action=foo sera envoyé.
Dans ajaxprocessor.php vous pourriez avoir n'importe quoi de pareil :
/* LE PHP POUR TRAITER LA DEMANDE DU MANUSCRIT D'ENTRÉE *
commutateur ($_GET [« action »])
{
cas « foo » :
// FONT QUOI QUE LE TRAITEMENT SOIT APPROPRIÉ
// RENVOIENT ALORS UNE CORDE de RÉPONSE au handleResponse ()
foo d'écho « |Foo fait » ;
coupure ;
// ETC….
}
Maintenant, regard au handleResponse. Il analyse le « foo| » Corde faite par Foo et
fentes il sur « | » et emploie celui qui soit avant « | » comme DOM
identification d'élément dans votre page et la partie après comme nouvel innerHTML de cela
élément. Cela moyens si vous avez une étiquette de division comme ceci en votre page :
Foo de attente
Une fois que vous cliquez dessus ce lien, cela sera dynamiquement changé en :
Foo fait
C'est tout là est à lui. Tout autrement construit juste sur
ceci. Identification remplaçant ma réponse simple « |syntaxe des textes » avec un XML plus riche
composer et en faisant la demande beaucoup plus compliqué aussi bien e. Avant vous
installer aveugle les grandes bibliothèques de « AJAX », ont un attaquer à rouler vos propres
la fonctionnalité ainsi vous savent exactement cela fonctionne et vous la faites seulement As
compliqué comme vous avez besoin. Souvent vous n'avez pas besoin beaucoup de plus que ce qui I
ont montré ici.
Augmentant cette approche un peu pour envoyer des paramètres multiples dans
la demande, par exemple, serait vraiment simple. Quelque chose aiment :
sendReqArg de fonction (action, arg)
{
http.open (« obtenir », 'ajaxprocessor.php ? arg d'action='+ action+'& arg='+) ;
http.onreadystatechange = handleResponse ;
http.send (nulle) ;
}
Et votre handleResponse peut facilement être augmenté pour faire plus intéressant
choses que juste remplaçant le contenu d'une division.
- Rasmus (Lerdorf ?)
|