PHP On-The-Fly!

| by Dennis Pallett | November 28, 2004
Introdução

PHP pode ser usado para muitos de coisas diferentes, e é uma das línguas scripting as mais poderosas disponíveis na correia fotorreceptora. Não o mencionar é extremamente barato e usado extensamente. Entretanto, uma coisa que PHP está faltando, e no fato a maioria de línguas scripting são, são uma maneira atualizar páginas no real-time, sem ter que recarregar uma página ou submeter-se um formulário.

O Internet não foi feito para este. O web browser fecha a conexão com o web server assim que receber todos os dados. Isto significa aquele depois que este não mais dados não pode ser trocado. Que se você quiser um update though? Se você estiver construindo uma aplicação de PHP (por exemplo um sistema de gerência satisfeito de alta qualidade), então o it'd seja ideal se trabalhar quase como uma aplicação nativa de Windows/Linux.

Mas isso requer updates real-time. Algo que não é possível, ou assim que você pensariam. Um exemplo bom de uma aplicação que trabalhe (quase) no real-time é GMail de Google (http://gmail.google.com). Tudo é Javascript powered, e é muito poderoso e dinâmico. No fato, este é um dos vend-pontos os mais grandes de GMail. Que se você poderia ter este em seus próprios Web site de PHP também? Supo o que, mim estão indo o mostrar neste artigo.

Como trabalha?

Se você quiser executar um certificado de PHP, você necessita recarregar uma página, submete um formulário, ou algo similar. Bàsicamente, uma conexão nova ao usuário necessita ser aberta, e esta significa que o browser vai a uma página nova, perdendo a página precedente. Por um quando longo agora, os colaboradores da correia fotorreceptora têm usado truques começar em torno deste, como usar um iframe 1x1, onde uma página nova de PHP fosse carregada, mas esta é longe de ideal.

Agora, há uma maneira nova de executar um certificado de PHP sem ter que recarregar a página. A base atrás desta maneira nova é um componente do Javascript chamado o objeto do pedido do HTTP de XML. Ver http://jibbering.com/2002/4/httprequest.html para mais informação sobre o componente. É suportado em todos os browsers principais (Internet Explorer 5.5+, Safari, Mozilla/Firefox e ópera 7.6+).

Com este objeto e algumas funções do Javascript do costume, você pode criar algumas aplicações rather impressive de PHP. Vamos olhar um primeiro exemplo, que atualize dinâmicamente a data/hora.

Exemplo 1

Primeiramente, copí o código abaixo e excepto ele em uma lima chamada “script.js”: xmlhttp=false do var; /*@cc_on @*//*@if () do >= 5 do @_jscript_version/JScript dá-nos a compilação condicional, nós podemos lidar com. velho das versões do IE/e a criação obstruída segurança dos objetos. tentativa {xmlhttp = ActiveXObject novo (“Msxml2.XMLHTTP”); } prendedor (e) {tentativa {xmlhttp = ActiveXObject novo (“Microsoft.XMLHTTP”); } prendedor (E) {xmlhttp = falso; }} @end @*/if (! typeof XMLHttpRequest do && do xmlhttp! = ' undefined') {xmlhttp = XMLHttpRequest novo ();}loadFragmentInToElement da função (fragment_url, element_id) {elemento do var = document.getElementById (element_id); element.innerHTML = “… </em> <em>Loading”; xmlhttp.open (“COMEÇAR”, fragment_url); xmlhttp.onreadystatechange = função () {se (== 200 do && xmlhttp.status do == 4 de xmlhttp.readyState) {element.innerHTML = xmlhttp.responseText; }} xmlhttp.send (zero);}

Copí então o código abaixo, e colá-lo em uma lima chamada “server1.php”: <? data do phpecho (“l dS de F Y h: i: s. A.”);? >

E finalmente, copí o código abaixo, e colá-lo em uma lima chamada “client1.php”. Anotar por favor though que você necessita editar a linha que diz 'http://www.yourdomain.com/server1.php' à posição correta de server1.php em seu server.<! Texto " do type= " de " script.js do src= do ><html><head><title>Example 1</title><script do HTML 4.01 Strict//EN " do PÚBLICO” - //W3C//DTD do HTML de DOCTYPE/Javascript " texto/Javascript " do type= de ></script><script " > updatedate da função () {loadFragmentInToElement ('http://www.yourdomain.com/server1.php', “currentdate”); } </script></head><body> a data atual é >< <span do " currentdate " do id=? data do eco do php (“l dS de F Y h: i: s. A.”); ? updatedate " de OnClick= " da data Update " do value= do " da " tecla do type= do <input de ></span>.<br/><br/> (); “/></body></html>

Agora ir a http://www.yourdomain.com/client1.php e estalar sobre a tecla que diz do “a data Update”. A data atualizará, sem a página que tem que ser recarregada. Isto é feito com o objeto do pedido do HTTP de XML. Este exemplo pode também ser visto em linha em http://www.phpit.net/demo/php%20on%20the%20fly/client1.php.

Exemplo 2

Vamos tentar um exemplo mais avançado. Ao seguinte exemplo, o visitante pode incorporar dois números, e são adicionados acima por PHP (e não por Javascript). Isto mostra o poder verdadeiro de PHP e do objeto do pedido do HTTP de XML.

Este exemplo usa o mesmo script.js que no primeiro exemplo, assim que você não necessita criar outra vez este. Primeiramente, copí o código abaixo e colá-lo em uma lima chamada “server2.php”: <? php//começam numbers$num1 = intval ($_GET [“num1”]); $num2 = intval ($_GET [“num2”]); /answerecho do retorno ($num1 + $num2);? >

E então, copí o código abaixo, e colá-lo em uma lima chamada “client2.php”. Anotar por favor though que você necessita editar a linha que diz 'http://www.yourdomain.com/server2.php' à posição correta de server2.php em seu server.<! Javascript " do type= do " do src= " script.js do ><html><head><title>Example 2</title><script do HTML //W3C//DTD 4.01 Strict//EN do PÚBLICO” do HTML de DOCTYPE - " de ></script><script texto/" > função calc () {num1 = document.getElementById type= " texto/Javascript " (“num1”) .value; num2 = document.getElementById (“num2”) .value; elemento do var = document.getElementById (“resposta”); xmlhttp.open (“COMEÇAR”, 'http://www.yourdomain.com/server2.php?num1=' + num1 + “&num2=” + num2); xmlhttp.onreadystatechange = função () {se (== 200 do && xmlhttp.status do == 4 de xmlhttp.readyState) {element.value = xmlhttp.responseText; }} xmlhttp.send (zero); } uso de </script></head><body> abaixo o formulário adicionar acima dois números. A resposta é calculada por um certificado de PHP, e por <em>not</em> com Javascript. Que é a vantagem a este? Você pode executar os certificados do usuário-lado (PHP) sem ter que refrescar o size= " 3”” do id= " num1” do " texto do type= do <input de page.<br/><br/>/> + size= " 3”” do id= " num2” do " texto do type= do <input/> = size= da " resposta”” do id= do " texto do type= do <input o value= " da " tecla do type=” do <input de " que 5”/> calcula!” OnClick= " calc (); “/></body></html>

Quando você funciona este exemplo, você pode adicionar acima dois números, usando PHP e nenhum recarregamento em tudo! Se você não puder começar este exemplo trabalhar, ter então um olhar em http://www.phpit.net/demo/php%20on%20the%20fly/client3.php para ver o exemplo em linha.

Alguma desvantagem…?

Há somente duas desvantagens reais a este sistema. Primeiramente de tudo, qualquer um que tem o Javascript desligado, ou seu browser não suportam o objeto do pedido do HTTP de XML não funcionam-no. Isto significa que você terá que se certificar de que há uma versão do non-Javascript, ou se certificar todos seus visitantes para ter o Javascript permitido (por exemplo uma aplicação do Intranet, onde você pode reque JS).

Uma outra desvantagem é o fato que quebra bookmarks. Os povos não bookmark suas páginas, se houver qualquer índice dinâmico dentro lá. Mas se você estiver criando uma aplicação de PHP (e não um Web site de PHP), então os bookmarks não são provavelmente muito úteis de qualquer maneira.

Conclusão

Porque eu o mostrei, usando dois exemplos muito simples, é inteiramente possível executar certificados de PHP, sem ter que refrescar a página. Eu sugiro que você lê mais sobre o objeto do pedido do HTTP de XML (http://jibbering.com/2002/4/httprequest.html) e suas potencialidades.

As coisas que você pode fazer são ilimitadas. Por exemplo, você poderia criar um sistema paginando extremamente puro, que não requeresse o recarregamento em tudo. Ou você poderia criar um GUI para sua aplicação de PHP, que se comporta exatamente como Windows XP. Pensar apenas sobre ela!

Estar ciente though que o Javascript deve ser permitido para que este trabalhe. Sem Javascript isto será completamente inútil. Certifica-se assim seu Javascript da sustentação dos visitantes, ou cría-se uma versão do non-Javascript também.

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: