¡PHP en marcha!
| by Dennis Pallett | November 28, 2004
Introducción
PHP se puede utilizar para los muchos de diversas cosas, y es una de las idiomas scripting más de gran alcance disponibles en la tela. No mencionarlo es extremadamente barato y ampliamente utilizado. Sin embargo, una cosa que PHP está careciendo, y de hecho la mayoría de las idiomas scripting son, son una manera de poner al día las páginas en tiempo real, sin tener que recargar una página o someter una forma.
El Internet no fue hecho para esto. El web browser cierra la conexión con el web server tan pronto como haya recibido todos los datos. Esto significa eso después de que estos no más de datos no puedan ser intercambiados. ¿Qué si deseas una actualización sin embargo? Si estás construyendo un uso de PHP (e.g. un sistema de gerencia contento de alta calidad), entonces el it'd sea ideal si trabajó casi como un uso nativo de Windows/de Linux.
Pero eso requiere actualizaciones en tiempo real. Algo que no es posible, o así que tú pensaríais. Un buen ejemplo de un uso que trabaje en (casi) tiempo real es GMail de Google (http://gmail.google.com). Todo es Javascript accionado, y es muy de gran alcance y dinámico. De hecho, éste es uno de los vender-puntos más grandes de GMail. ¿Qué si podrías tener esto en tus propios Web site de PHP también? Conjeturar qué, yo van a demostrarte en este artículo.
¿Cómo trabaja?
Si deseas ejecutar una escritura de PHP, necesitas recargar una página, sometes una forma, o algo similar. Básicamente, una nueva conexión al servidor necesita ser abierta, y ésta significa que el browser va a una página nueva, perdiendo la página anterior. Por un rato largo ahora, los reveladores de la tela han estado utilizando trucos para conseguir alrededor de esto, como usar un iframe 1x1, donde se carga una página nueva de PHP, pero ésta está lejos de ideal.
Ahora, hay una nueva manera de ejecutar una escritura de PHP sin tener que recargar la página. La base detrás de esta nueva manera es un componente del Javascript llamado el objeto de la petición del HTTP de XML. Ver http://jibbering.com/2002/4/httprequest.html para más información sobre el componente. Se apoya en todos los browsers importantes (Internet Explorer 5.5+, safari, Mozilla/Firefox y ópera 7.6+).
Con este objeto y algunas funciones del Javascript del costumbre, puedes crear algunos usos algo impresionantes de PHP. Miremos un primer ejemplo, que pone al día dinámicamente la fecha/la hora.
Ejemplo 1
Primero, copiar el código abajo y excepto él en un archivo llamado “script.js”: xmlhttp=false del var; /*@cc_on @*//*@if ()/JScript del >= 5 del @_jscript_version nos da la compilación condicional, podemos hacer frente a viejo./y de las versiones del IE a la creación bloqueada seguridad de los objetos. intento {xmlhttp = ActiveXObject nuevo (“Msxml2.XMLHTTP”); } retén (e) {intento {xmlhttp = ActiveXObject nuevo (“Microsoft.XMLHTTP”); } retén (e) {xmlhttp = falso; ¡}} @end @*/if (! ¡typeof XMLHttpRequest del && del xmlhttp! = ' undefined') {xmlhttp = XMLHttpRequest nuevo ();}loadFragmentInToElement de la función (fragment_url, element_id) {elemento del var = document.getElementById (element_id); element.innerHTML = “… </em> <em>Loading”; xmlhttp.open (“CONSEGUIR”, fragment_url); xmlhttp.onreadystatechange = función () {si (== 200 del && xmlhttp.status del == 4 de xmlhttp.readyState) {element.innerHTML = xmlhttp.responseText; }} xmlhttp.send (falta de información);}
Entonces copiar el código abajo, y pegarlo en un archivo llamado “server1.php”: ¿<? fecha del phpecho (“l dS de F Y h: i: ¿s. A.”);? >
Y finalmente, copiar el código abajo, y pegarlo en un archivo llamado “client1.php”. ¡Observar por favor sin embargo que necesitas corregir la línea que dice 'http://www.yourdomain.com/server1.php' a la localización correcta de server1.php en tu server.<! Texto del type= " de " script.js del src= " del ><html><head><title>Example 1</title><script del HTML 4.01 Strict//EN " del PÚBLICO” - //W3C//DTD del HTML de DOCTYPE/Javascript " texto/Javascript " del type= de ></script><script " > updatedate de la función () {loadFragmentInToElement ('http://www.yourdomain.com/server1.php', “currentdate”); ¿} </script></head><body> la fecha actual es >< <span del " currentdate " del id=? fecha del eco del php (“l dS de F Y h: i: s. A.”); ¿? updatedate de OnClick= " fecha de la actualización " del value= de la " del " botón " del type= del <input de ></span>.<br/><br/> (); “/></body></html>
Ahora ir a http://www.yourdomain.com/client1.php y chascar encendido el botón que dice la “fecha de la actualización”. La fecha se pondrá al día, sin la página que tiene que ser recargada. Esto se hace con el objeto de la petición del HTTP de XML. Este ejemplo se puede también ver en línea en http://www.phpit.net/demo/php%20on%20the%20fly/client1.php.
Ejemplo 2
Intentemos un ejemplo más avanzado. En el ejemplo siguiente, el visitante puede incorporar dos números, y son agregados para arriba por PHP (y no por JavaScript). Esto demuestra la energía verdadera de PHP y del objeto de la petición del HTTP de XML.
Este ejemplo utiliza el mismo script.js que en el primer ejemplo, así que no necesitas crear esto otra vez. Primero, copiar el código abajo y pegarlo en un archivo llamado “server2.php”: ¿<? php//consiguen numbers$num1 = intval ($_GET [“num1”]); $num2 = intval ($_GET [“num2”]); ¿/answerecho de vuelta ($num1 + $num2);? >
Y entonces, copiar el código abajo, y pegarlo en un archivo llamado “client2.php”. ¡Observar por favor sin embargo que necesitas corregir la línea que dice 'http://www.yourdomain.com/server2.php' a la localización correcta de server2.php en tu server.<! Del Javascript del type= del src= " script.js " del ><html><head><title>Example 2</title><script del HTML //W3C//DTD 4.01 Strict//EN del PÚBLICO” del HTML de DOCTYPE - " de ></script><script del " texto/" > función calc () {num1 = document.getElementById type= " texto/Javascript " (“num1”) .value; num2 = document.getElementById (“num2”) .value; elemento del var = document.getElementById (“respuesta”); xmlhttp.open (“CONSEGUIR”, 'http://www.yourdomain.com/server2.php?num1=' + num1 + “&num2=” + num2); xmlhttp.onreadystatechange = función () {si (== 200 del && xmlhttp.status del == 4 de xmlhttp.readyState) {element.value = xmlhttp.responseText; }} xmlhttp.send (falta de información); } uso de </script></head><body> abajo la forma de agregar para arriba dos números. La respuesta es calculada por una escritura de PHP, y <em>not</em> con Javascript. ¿Cuál es la ventaja a esto? Puedes ejecutar las escrituras del servidor-lado (PHP) sin tener que restaurar el size= " 3”” del id= " num1” del " texto del type= del <input de page.<br/><br/>/> + el size= " 3”” del id= " num2” del " texto del type= del <input/> = size= de la " respuesta” del id= del " texto” del type= del <input el value= " del " botón del type=” del <input de " que 5”/> calcula!” OnClick= " calc (); “/></body></html>
¡Cuando funcionas este ejemplo, puedes agregar para arriba dos números, usando PHP y ninguna recarga en todos! Si no puedes conseguir este ejemplo para trabajar, entonces tener una mirada en http://www.phpit.net/demo/php%20on%20the%20fly/client3.php para ver el ejemplo en línea.
¿Desventajas…?
Hay solamente dos desventajas verdaderas a este sistema. Primero de todos, cualquier persona que hace el Javascript dar vuelta apagado, o su browser no apoya el objeto de la petición del HTTP de XML no podrá funcionarlo. Esto significa que tendrás que cerciorarse de que haya una versión del no-Javascript, o cerciorarse de todos tus visitantes hacer el Javascript permitir (e.g. un uso del Intranet, donde puedes requerir JS).
Otra desventaja es el hecho de que rompe bookmarks. La gente no podrá bookmark tus páginas, si hay cualquier contenido dinámico adentro allí. Pero si estás creando un uso de PHP (y no un Web site de PHP), entonces los bookmarks no son probablemente muy útiles de todos modos.
Conclusión
Pues te he demostrado, usando dos ejemplos muy simples, es enteramente posible ejecutar las escrituras de PHP, sin tener que restaurar la página. Sugiero que leas más sobre el objeto de la petición del HTTP de XML (http://jibbering.com/2002/4/httprequest.html) y sus capacidades.
Las cosas que puedes hacer son ilimitadas. Por ejemplo, podrías crear un sistema que paginaba extremadamente aseado, que no requiere la recarga en todos. O podrías crear un GUI para tu uso de PHP, que se comporta exactamente como Windows XP. ¡Apenas pensar de él!
Estar enterado sin embargo que el Javascript se debe permitir para que esto trabaje. Sin Javascript esto será totalmente inútil. Se cerciora de tan tu Javascript de la ayuda de los visitantes, o crea una versión del no-Javascript también.
PHP se puede utilizar para los muchos de diversas cosas, y es una de las idiomas scripting más de gran alcance disponibles en la tela. No mencionarlo es extremadamente barato y ampliamente utilizado. Sin embargo, una cosa que PHP está careciendo, y de hecho la mayoría de las idiomas scripting son, son una manera de poner al día las páginas en tiempo real, sin tener que recargar una página o someter una forma.
El Internet no fue hecho para esto. El web browser cierra la conexión con el web server tan pronto como haya recibido todos los datos. Esto significa eso después de que estos no más de datos no puedan ser intercambiados. ¿Qué si deseas una actualización sin embargo? Si estás construyendo un uso de PHP (e.g. un sistema de gerencia contento de alta calidad), entonces el it'd sea ideal si trabajó casi como un uso nativo de Windows/de Linux.
Pero eso requiere actualizaciones en tiempo real. Algo que no es posible, o así que tú pensaríais. Un buen ejemplo de un uso que trabaje en (casi) tiempo real es GMail de Google (http://gmail.google.com). Todo es Javascript accionado, y es muy de gran alcance y dinámico. De hecho, éste es uno de los vender-puntos más grandes de GMail. ¿Qué si podrías tener esto en tus propios Web site de PHP también? Conjeturar qué, yo van a demostrarte en este artículo.
¿Cómo trabaja?
Si deseas ejecutar una escritura de PHP, necesitas recargar una página, sometes una forma, o algo similar. Básicamente, una nueva conexión al servidor necesita ser abierta, y ésta significa que el browser va a una página nueva, perdiendo la página anterior. Por un rato largo ahora, los reveladores de la tela han estado utilizando trucos para conseguir alrededor de esto, como usar un iframe 1x1, donde se carga una página nueva de PHP, pero ésta está lejos de ideal.
Ahora, hay una nueva manera de ejecutar una escritura de PHP sin tener que recargar la página. La base detrás de esta nueva manera es un componente del Javascript llamado el objeto de la petición del HTTP de XML. Ver http://jibbering.com/2002/4/httprequest.html para más información sobre el componente. Se apoya en todos los browsers importantes (Internet Explorer 5.5+, safari, Mozilla/Firefox y ópera 7.6+).
Con este objeto y algunas funciones del Javascript del costumbre, puedes crear algunos usos algo impresionantes de PHP. Miremos un primer ejemplo, que pone al día dinámicamente la fecha/la hora.
Ejemplo 1
Primero, copiar el código abajo y excepto él en un archivo llamado “script.js”: xmlhttp=false del var; /*@cc_on @*//*@if ()/JScript del >= 5 del @_jscript_version nos da la compilación condicional, podemos hacer frente a viejo./y de las versiones del IE a la creación bloqueada seguridad de los objetos. intento {xmlhttp = ActiveXObject nuevo (“Msxml2.XMLHTTP”); } retén (e) {intento {xmlhttp = ActiveXObject nuevo (“Microsoft.XMLHTTP”); } retén (e) {xmlhttp = falso; ¡}} @end @*/if (! ¡typeof XMLHttpRequest del && del xmlhttp! = ' undefined') {xmlhttp = XMLHttpRequest nuevo ();}loadFragmentInToElement de la función (fragment_url, element_id) {elemento del var = document.getElementById (element_id); element.innerHTML = “… </em> <em>Loading”; xmlhttp.open (“CONSEGUIR”, fragment_url); xmlhttp.onreadystatechange = función () {si (== 200 del && xmlhttp.status del == 4 de xmlhttp.readyState) {element.innerHTML = xmlhttp.responseText; }} xmlhttp.send (falta de información);}
Entonces copiar el código abajo, y pegarlo en un archivo llamado “server1.php”: ¿<? fecha del phpecho (“l dS de F Y h: i: ¿s. A.”);? >
Y finalmente, copiar el código abajo, y pegarlo en un archivo llamado “client1.php”. ¡Observar por favor sin embargo que necesitas corregir la línea que dice 'http://www.yourdomain.com/server1.php' a la localización correcta de server1.php en tu server.<! Texto del type= " de " script.js del src= " del ><html><head><title>Example 1</title><script del HTML 4.01 Strict//EN " del PÚBLICO” - //W3C//DTD del HTML de DOCTYPE/Javascript " texto/Javascript " del type= de ></script><script " > updatedate de la función () {loadFragmentInToElement ('http://www.yourdomain.com/server1.php', “currentdate”); ¿} </script></head><body> la fecha actual es >< <span del " currentdate " del id=? fecha del eco del php (“l dS de F Y h: i: s. A.”); ¿? updatedate de OnClick= " fecha de la actualización " del value= de la " del " botón " del type= del <input de ></span>.<br/><br/> (); “/></body></html>
Ahora ir a http://www.yourdomain.com/client1.php y chascar encendido el botón que dice la “fecha de la actualización”. La fecha se pondrá al día, sin la página que tiene que ser recargada. Esto se hace con el objeto de la petición del HTTP de XML. Este ejemplo se puede también ver en línea en http://www.phpit.net/demo/php%20on%20the%20fly/client1.php.
Ejemplo 2
Intentemos un ejemplo más avanzado. En el ejemplo siguiente, el visitante puede incorporar dos números, y son agregados para arriba por PHP (y no por JavaScript). Esto demuestra la energía verdadera de PHP y del objeto de la petición del HTTP de XML.
Este ejemplo utiliza el mismo script.js que en el primer ejemplo, así que no necesitas crear esto otra vez. Primero, copiar el código abajo y pegarlo en un archivo llamado “server2.php”: ¿<? php//consiguen numbers$num1 = intval ($_GET [“num1”]); $num2 = intval ($_GET [“num2”]); ¿/answerecho de vuelta ($num1 + $num2);? >
Y entonces, copiar el código abajo, y pegarlo en un archivo llamado “client2.php”. ¡Observar por favor sin embargo que necesitas corregir la línea que dice 'http://www.yourdomain.com/server2.php' a la localización correcta de server2.php en tu server.<! Del Javascript del type= del src= " script.js " del ><html><head><title>Example 2</title><script del HTML //W3C//DTD 4.01 Strict//EN del PÚBLICO” del HTML de DOCTYPE - " de ></script><script del " texto/" > función calc () {num1 = document.getElementById type= " texto/Javascript " (“num1”) .value; num2 = document.getElementById (“num2”) .value; elemento del var = document.getElementById (“respuesta”); xmlhttp.open (“CONSEGUIR”, 'http://www.yourdomain.com/server2.php?num1=' + num1 + “&num2=” + num2); xmlhttp.onreadystatechange = función () {si (== 200 del && xmlhttp.status del == 4 de xmlhttp.readyState) {element.value = xmlhttp.responseText; }} xmlhttp.send (falta de información); } uso de </script></head><body> abajo la forma de agregar para arriba dos números. La respuesta es calculada por una escritura de PHP, y <em>not</em> con Javascript. ¿Cuál es la ventaja a esto? Puedes ejecutar las escrituras del servidor-lado (PHP) sin tener que restaurar el size= " 3”” del id= " num1” del " texto del type= del <input de page.<br/><br/>/> + el size= " 3”” del id= " num2” del " texto del type= del <input/> = size= de la " respuesta” del id= del " texto” del type= del <input el value= " del " botón del type=” del <input de " que 5”/> calcula!” OnClick= " calc (); “/></body></html>
¡Cuando funcionas este ejemplo, puedes agregar para arriba dos números, usando PHP y ninguna recarga en todos! Si no puedes conseguir este ejemplo para trabajar, entonces tener una mirada en http://www.phpit.net/demo/php%20on%20the%20fly/client3.php para ver el ejemplo en línea.
¿Desventajas…?
Hay solamente dos desventajas verdaderas a este sistema. Primero de todos, cualquier persona que hace el Javascript dar vuelta apagado, o su browser no apoya el objeto de la petición del HTTP de XML no podrá funcionarlo. Esto significa que tendrás que cerciorarse de que haya una versión del no-Javascript, o cerciorarse de todos tus visitantes hacer el Javascript permitir (e.g. un uso del Intranet, donde puedes requerir JS).
Otra desventaja es el hecho de que rompe bookmarks. La gente no podrá bookmark tus páginas, si hay cualquier contenido dinámico adentro allí. Pero si estás creando un uso de PHP (y no un Web site de PHP), entonces los bookmarks no son probablemente muy útiles de todos modos.
Conclusión
Pues te he demostrado, usando dos ejemplos muy simples, es enteramente posible ejecutar las escrituras de PHP, sin tener que restaurar la página. Sugiero que leas más sobre el objeto de la petición del HTTP de XML (http://jibbering.com/2002/4/httprequest.html) y sus capacidades.
Las cosas que puedes hacer son ilimitadas. Por ejemplo, podrías crear un sistema que paginaba extremadamente aseado, que no requiere la recarga en todos. O podrías crear un GUI para tu uso de PHP, que se comporta exactamente como Windows XP. ¡Apenas pensar de él!
Estar enterado sin embargo que el Javascript se debe permitir para que esto trabaje. Sin Javascript esto será totalmente inútil. Se cerciora de tan tu Javascript de la ayuda de los visitantes, o crea una versión del no-Javascript también.
Article Source: http://www.articleset.com

You are welcome to publish or reprint this article free of charge, provided:
- you include the entire article, unchanged, including the "About The Author" box
- all hyperlinks remain active, including the bottom ArticleSet.com link (does not apply to print publications)
- you agree not to hold the authors nor ArticleSet.com liable for any loss profits, expenses, or any other damages resulting from the use or misuse of articles published on this website