2012-06-30 18 views
5

Puede sonar extraño, pero he estado programando juegos en PHP. El principal problema que he encontrado es que la única forma de actualizar PHP es cargar una página. Eso hace que en tiempo real sea lento. Javascript puede interactuar con una página sin tener que volver a cargarla. ¿Es posible cargar páginas PHP en una página usando Javascript? Para que permita que PHP se cargue una y otra vez sin volver a cargar.PHP y Javascript trabajando juntos

Lo he visto hecho con salas de chat, pero no estoy seguro de cómo funciona.

+1

Sí, ajax. Y si está haciendo ajax, le recomiendo mucho la biblioteca de jquery, ya que hace que sea mucho más fácil – Kris

Respuesta

3

Utilizamos principalmente Ajax, que consiste en un código Javascript del lado del cliente que llama a una página del lado del servidor, sin salir de la página.

He aquí un ejemplo que tendrá el contenido que se muestra de una página, usando el método GET (JSFiddle):

var xhr = XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHttp'); 
xhr.onreadystatechange = function(){ 
    if(xhr.readyState==4 && ((xhr.status>=200 && xhr.status<300) || xhr.status==304)){//Checks if the content was loaded 
     console.log(this.responseText); 
    } 
} 
xhr.open('GET','myPHPPage.php?foo=foo&bar=bar',true); 
xhr.send(); 

Y aquí usando el método POST (JSFiddle):

var xhr = XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHttp'); 
var data = 'foo=foo&bar=bar'; 
xhr.onreadystatechange = function(){ 
    if(xhr.readyState==4 && ((xhr.status>=200 && xhr.status<300) || xhr.status==304)){//Checks if the content was loaded 
     console.log(this.responseText); 
    } 
} 
xhr.open('POST','myPHPPage.php',true); 
xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded'); 
xhr.setRequestHeader('Content-length',data.length); 
xhr.send(data); 

Tenga en cuenta que aquí utilizamos el método setRequestHeader para cambiar los encabezados de esta solicitud HTTP y, en este caso, para cambiar Content-type y Content-length (este encabezado tiene un valor predeterminado de 4096 bytes). Además, se debe llamar al método setRequestHeader después del método open.

Estos enlaces le ayudarán a:

https://developer.mozilla.org/en/Ajax

http://code.google.com/intl/pt-BR/edu/ajax/tutorials/ajax-tutorial.html

+0

El segundo enlace es 404. –

+0

He corregido el enlace –

2

Sí, es increíblemente común. Lectura en Ajax.

+0

¿Es eso lo que Facebook usa para crear nuevos estados sin tener que actualizar la página? –

+0

Sí, exactamente lo mismo –

+0

que leí en w3schools como lo sugirió Abadis antes. Veo que es corto. ¿Hay más y/o mejor lugar para aprender sobre Ajax o es eso más o menos? Por cierto, gracias, esto tiene mucho más sentido. –

0

Llamamos a eso AJAX !!! Solo lectura La documentación en internet sobre ajax

+0

Tenga cuidado: a las personas aquí no les gusta w3schools.com –

+0

Si bien vincular a w3schools puede ser peligroso, llamarlo 'la documentación' es Claramente mal. – Matsemann

+0

He editado la publicación – Abadis

Cuestiones relacionadas