Trovo molto questo roba di AJAX una punta di una campagna pubblicitaria. I lotti della gente hanno
usando le simili cose si è trasformato in “in AJAX„. Ed esso realmente
non è complicato come molta gente lo fa fuori per essere. Qui è la a
esempio semplice da uno dei miei apps.
/* IL JAVASCRIPT PER GENERARE L'INFRASTRUTTURA DI AJAX */
FUNZIONE DI/* PER GENERARE L'OGGETTO DI RICHIESTA DI BROWSER-DEPENDENT */
createRequestObject di funzione ()
{
ro di varietà;
browser di varietà = navigator.appName;
se (== “Microsoft Internet Explorer„ del browser)
{
ro = nuovo ActiveXObject (“Microsoft.XMLHTTP„);
} altrimenti
{
ro = nuovo XMLHttpRequest ();
}
ro di ritorno;
}
FUNZIONE DI/* PER TRASMETTERE LA RICHIESTA */
sendReq di funzione (azione)
{
http.open (“ottenere„, 'ajaxprocessor.php? azione di action='+);
http.onreadystatechange = handleResponse;
http.send (posizione di segnale minimo);
}
FUNZIONE DI/* PER TRATTARE LA RISPOSTA */
handleResponse di funzione ()
{
se (== di http.readyState 4)
{
risposta di varietà = http.responseText;
aggiornamento di varietà = nuovo allineamento ();
se (response.indexOf (“|„! = -1))
{
aggiornamento = response.split (“|");
document.getElementById (aggiornamento [0]) .innerHTML = aggiornamento [1];
}
}
}
/* GENERANO L'OGGETTO */
varietà HTTP = createRequestObject ();
CONCLUSIONE DI/* DEL JAVASCRIPT */
Ciò genera un oggetto di richiesta con una richiesta e una maniglia di invio
funzione di risposta. Così realmente usarla, potreste comprendere questo i js dentro
la vostra pagina. Allora renderlo una di queste richieste posteriori la legherebbe
a qualcosa. Come l'evento del onclick o un href diritto gradire questo:
[Foo]
Quello significa quello quando qualcuno scatta sopra quel collegamento che cosa realmente accade
è quella una richiesta posteriore a ajaxprocessor.php? il action=foo sarà trasmesso.
In ajaxprocessor.php potreste avere qualcosa di simile:
/* IL PHP PER TRATTARE LA RICHIESTA DALLO SCRITTO A FINE FRONTALE */
interruttore ($_GET [“azione„])
{
caso “foo„:
// FA QUALUNQUE PROCEDARE È ADATTA
// ALLORA RESTITUISCE UNA STRINGA di RISPOSTA a handleResponse ()
foo di eco “|Foo fatto„;
rottura;
// ECC…
}
Ora, sguardo a handleResponse. Analizza “il foo|„ Stringa fatta Foo e
spaccature sul “|„ ed usa qualunque è prima del “|„ come i DOM
identificazione dell'elemento nella vostra pagina e nella parte dopo come il nuovo innerHTML di quella
elemento. Quello mezzi se avete una modifica di divisione come questa in vostra pagina:
Foo attendente
Una volta che scattate sopra quel collegamento, quello sarà cambiato dinamicamente a:
Foo fatto
Quello è tutto là è ad esso. Tutto altrimenti sta costruendo appena in cima a
ciò. Sostituendo identificazione della mia risposta semplice “|sintassi del testo„ con un XML più ricco
formattare e facendo la richiesta molto complicata pure. Prima di voi
installare ciecamente le grandi biblioteche “di AJAX„, hanno un andare a rotolare il vostri propri
la funzionalità in modo da voi sa esattamente funziona e la fate soltanto As
complicato come avete bisogno di. Non avete bisogno spesso di molto più di che cosa I
hanno indicato qui.
Ampliando questo metodo una punta per trasmettere i parametri multipli in
la richiesta, per esempio, sarebbe realmente semplice. Qualcosa gradice:
sendReqArg di funzione (azione, arg)
{
http.open (“ottenere„, 'ajaxprocessor.php? arg di action='+ action+'& arg='+);
http.onreadystatechange = handleResponse;
http.send (posizione di segnale minimo);
}
Ed il vostro handleResponse può essere ampliato facilmente per fare più interessante
cose che appena sostituendo il contenuto di una divisione.
- Rasmus (Lerdorf?)
|