PHP en marche !

| by Dennis Pallett | November 28, 2004
Introduzione

PHP può essere usato per le cose differenti molto ed è una delle lingue scripting più potenti disponibili sul fotoricettore. Non accennarlo è estremamente poco costoso ed ampiamente usato. Tuttavia, una cosa di che PHP sta difettando ed in effetti la maggior parte delle lingue scripting sono, è un senso aggiornare le pagine in tempo reale, senza dovere ricaricare una pagina o presentare una forma.

Il Internet non è stato fatto per questo. Il web browser chiude il collegamento con il web server non appena ha ricevuto tutti i dati. Ciò significa quella dopo che questo più dato non possa essere scambiato. Che cosa se desiderate un aggiornamento comunque? Se state sviluppando un'applicazione di PHP (per esempio un sistema di amministrazione soddisfatto di alta qualità), allora il it'd è ideale se funzionasse quasi come un'applicazione natale Linux/di Windows.

Ma quello richiede gli aggiornamenti in tempo reale. Qualcosa che non fosse possibile, o in modo da voi penserebbe. Un buon esempio di un'applicazione che funziona in tempo reale (quasi) è GMail del Google (http://gmail.google.com). Tutto è Javascript alimentato ed è molto potente e dinamico. Infatti, questo è uno dei vend-punti più grandi di GMail. Che cosa se poteste avere questo nei vostri propri Web site di PHP pure? Indovinare che cosa, io sto andando mostrarlo in questo articolo.

Come funziona?

Se desiderate eseguire uno scritto di PHP, dovete ricaricare una pagina, presentate una forma, o qualche cosa di simile. Basicamente, un nuovo collegamento all'assistente deve essere aperto e questo significa che il browser va ad una nuova pagina, perdente la pagina precedente. Per un istante lungo ora, gli sviluppatori di fotoricettore stanno usando i trucchi per ottenere intorno a questo, come usando un iframe 1x1, dove una nuova pagina di PHP è caricata, ma questa è lontano da ideale.

Ora, ci è un nuovo senso di esecuzione dello scritto di PHP senza dovere ricaricare la pagina. La base dietro questo nuovo senso è un componente di Javascript denominato l'oggetto di richiesta del HTTP di XML. Vedere http://jibbering.com/2002/4/httprequest.html per le più informazioni sul componente. È sostenuto in tutti i browsers importanti (Internet Explorer 5.5+, safari, Mozilla/Firefox ed opera 7.6+).

Con questo oggetto ed alcune funzioni di Javascript di abitudine, potete generare alcune applicazioni piuttosto impressionanti di PHP. Guardiamo un primo esempio, che aggiorna dinamicamente la data/tempo.

Esempio 1

In primo luogo, copiare il codice qui sotto e risparmi esso in una lima chiamata “script.js„: xmlhttp=false di varietà; /*@cc_on @*//*@if ()/JScript del >= 5 di @_jscript_version ci dà la compilazione condizionale, possiamo fare fronte vecchio./e di versioni dello IE alla creazione ostruita sicurezza degli oggetti. prova {xmlhttp = nuovo ActiveXObject (“Msxml2.XMLHTTP„); } fermo (e) {prova {xmlhttp = nuovo ActiveXObject (“Microsoft.XMLHTTP„); } fermo (E) {xmlhttp = falso; }} @end @*/if (! typeof XMLHttpRequest del && del xmlhttp! = ' undefined') {xmlhttp = nuovo XMLHttpRequest ();}loadFragmentInToElement di funzione (fragment_url, element_id) {elemento di varietà = document.getElementById (element_id); element.innerHTML = “… </em> <em>Loading„; xmlhttp.open (“OTTENERE„, fragment_url); xmlhttp.onreadystatechange = funzione () {se (== 200 del && xmlhttp.status del == 4 di xmlhttp.readyState) {element.innerHTML = xmlhttp.responseText; }} xmlhttp.send (posizione di segnale minimo);}

Allora copiare il codice qui sotto ed incollarlo in una lima chiamata “server1.php„: <? data di phpecho (“l dS della F Y h: i: S.A.„);? >

E per concludere, copiare il codice qui sotto ed incollarlo in una lima chiamata “client1.php„. Notare prego comunque che dovete pubblicare la linea che dice 'http://www.yourdomain.com/server1.php' alla posizione corretta di server1.php sul vostro server.<! Testo " del type= " " di script.js dello src= del ><html><head><title>Example 1</title><script del HTML 4.01 Strict//EN " del PUBBLICO„ - //W3C//DTD del HTML di DOCTYPE/Javascript " testo/Javascript " del type= di ></script><script " > updatedate di funzione () {loadFragmentInToElement ('http://www.yourdomain.com/server1.php', “currentdate„); } </script></head><body> la data corrente è >< <span " del currentdate " del id=? data di eco del php (“l dS della F Y h: i: S.A.„); ? updatedate " di OnClick= " della data dell'aggiornamento " del value= " " del tasto del type= del <input di ></span>.<br/><br/> (); “/></body></html>

Ora andare a http://www.yourdomain.com/client1.php e scattare sopra il tasto che dice “la data dell'aggiornamento„. La data aggiornerà, senza la pagina che deve essere ricaricata. Ciò è fatta con l'oggetto di richiesta del HTTP di XML. Questo esempio può anche essere osservato in linea a http://www.phpit.net/demo/php%20on%20the%20fly/client1.php.

Esempio 2

Proviamo un esempio più avanzato. Nel seguente esempio, l'ospite può fornire due numeri e sono aggiunti in su da PHP (e non da JavaScript). Ciò mostra l'alimentazione allineare di PHP e dell'oggetto di richiesta del HTTP di XML.

Questo esempio usa lo stesso script.js di nel primo esempio, in modo da non dovete generare ancora questo. In primo luogo, copiare il codice qui sotto ed incollarlo in una lima chiamata “server2.php„: <? php//ottengono numbers$num1 = intval ($_GET [“num1„]); $num2 = intval ($_GET [“num2„]); /answerecho di ritorno ($num1 + $num2);? >

Ed allora, copiare il codice qui sotto ed incollarlo in una lima chiamata “client2.php„. Notare prego comunque che dovete pubblicare la linea che dice 'http://www.yourdomain.com/server2.php' alla posizione corretta di server2.php sul vostro server.<! Javascript " del type= " dello src= " script.js del ><html><head><title>Example 2</title><script del HTML //W3C//DTD 4.01 Strict//EN del PUBBLICO„ del HTML di DOCTYPE - " di ></script><script/del testo " > funzione calc () {num1 = document.getElementById type= " testo/Javascript " (“num1„) .value; num2 = document.getElementById (“num2„) .value; elemento di varietà = document.getElementById (“risposta„); xmlhttp.open (“OTTENERE„, 'http://www.yourdomain.com/server2.php?num1=' + num1 + “&num2=„ + num2); xmlhttp.onreadystatechange = funzione () {se (== 200 del && xmlhttp.status del == 4 di xmlhttp.readyState) {element.value = xmlhttp.responseText; }} xmlhttp.send (posizione di segnale minimo); } uso di </script></head><body> sotto la forma aggiungere in su due numeri. La risposta è calcolata da uno scritto di PHP e da <em>not</em> con il Javascript. Che cosa è il vantaggio a questo? Potete eseguire gli scritti del assistente-lato (PHP) senza dovere rinfrescare il size= " 3„„ del id= " num1„ " del testo del type= del <input di page.<br/><br/>/> + size= " 3„„ del id= " num2„ " del testo del type= del <input/> = size= " di risposta„„ del id= " del testo del type= del <input il value= " " del tasto del type=„ del <input " che di 5„/> calcola!„ OnClick= " calc (); “/></body></html>

Quando fate funzionare questo esempio, potete aggiungere in su due numeri, usando PHP e nessun ricaricamento affatto! Se non potete convincere questo esempio per funzionare, allora avere uno sguardo su http://www.phpit.net/demo/php%20on%20the%20fly/client3.php per vedere l'esempio in linea.

Degli svantaggi…?

Ci sono soltanto due svantaggi reali a questo sistema. In primo luogo, chiunque che faccia spegnere il Javascript, o il loro browser non sostiene l'oggetto di richiesta del HTTP di XML non potrà farlo funzionare. Ciò significa che dovrete assicurarti che ci è una versione di non-Javascript, o assicurarsi tutti gli vostri ospiti fare permettere il Javascript (per esempio un'applicazione del Intranet, dove potete richiedere JS).

Un altro svantaggio è il fatto che rompe i bookmarks. La gente non potrà bookmark le vostre pagine, se ci è qualunque soddisfare dinamico dentro là. Ma se state generando un'applicazione di PHP (e non un Web site di PHP), allora i bookmarks non sono comunque probabilmente molto utili.

Conclusione

Poichè li ho indicati, usando due esempi molto semplici, è interamente possibile eseguire gli scritti di PHP, senza dovere rinfrescare la pagina. Suggerisco che leggete più circa l'oggetto di richiesta del HTTP di XML (http://jibbering.com/2002/4/httprequest.html) e le relative possibilità.

Le cose che potete fare sono illimitate. Per esempio, potreste generare un sistema paginante estremamente accurato, che non richiede il ricaricamento affatto. O potreste generare un GUI per la vostra applicazione di PHP, che si comporta esattamente come Windows XP. Pensare appena a questo proposito!

Essere informato comunque che il Javascript deve essere permesso affinchè questo funzioni. Senza Javascript questo sarà completamente inutile. Così si assicura il vostro Javascript di sostegno degli ospiti, o genera una versione di non-Javascript pure.

Article Source: http://www.articleset.com



About the Author

Dennis Pallett is a young tech writer, with much experience in ASP, PHP and other web technologies. He enjoys writing, and has written several articles and tutorials. To find more of his work, look at his websites at http://www.phpit.net, http://www.aspit.net and http://www.ezfaqs.com. » Read more articles by Dennis Pallett
You are welcome to publish or reprint this article free of charge, provided: