Usuario:ManuelRomero/PHP/xajax

De WikiEducator
Saltar a: navegación, buscar

Objetivo

  • La intención es que php genere una página html que entrega al cliente y que contenga código ajax, de modo que cuando el cliente lo necesite solicite recargar solo parte de la página.
  • En este caso pretendemos que sea el servidor el que genere este código, y no generarlo directamente en el cliente.
  • Existen situaciones en las cuales puede ser interesante aplicar esta forma de proceder.
  • Muchas de estas librerías suelen apoyarse en librerías JavaScript como jQuery para la ejecución de código en el cliente.
  • Podemos ver estas librerías en
  1. http://ajaxpatterns.org/PHP_Ajax_Frameworks
  2. http://www.ribosomatic.com/articulos/top-librerias-ajax-dhtml-y-javascript/
  • Vamos a estudiar un poco por encima Xajax, por ser una librería de código abierto y de sencillo uso.
  • Ha estado muchos años caída, pero actualmente se ha recuperado el proyecto y por lo tanto lo vamos a utilizar

Xajax

  • Para instalarlo vamos a la página oficial
http://www.xajax-project.org/en/home/
  • En la sección download podemos bajar la versión 0.6 (es beta, pero funciona ok). Para un sitio en producción se recomienda la última estable (0.5)
  • Nos interesan las carpetas xajax_core y xajax_js, las cuales incorporaremos a nuestro proyecto
  • Además en el fichero php donde vayamos a usarlo lo incluiremos
*Nosotros usaremos la clase '''''xajax''''', podemos ver su documentación en la misma página sección '''''doc&tutorial'''''
 http://www.xajax-project.org/en/docs-tutorials/api-docs/xajax-core/xajax-inc-php/xajax/
===Usando xajax===
*Para usar esta tecnología con esta clase 
<source lang=php>
require_once (./xajax_core/xajax_inc.php');
 
$miXajax = new xajax();
  • La clase necesita incluir una serie de código en javascript en la página que vamos a generar, printJavascript()

</source> .... $miXajax->printJavascript() </source>

  • Prueba a ver el resultado de la página con lo escrito hasta ahora
  • En caso de que la librería de xajax_js, no esté en la carpeta actual, hay que confirugarlo
...
$miXajax->configure ('javascript URI','./libs/');
 
....
  • Podemos también establecer (solo para el desarrollo), que nos de un traceo del proceso
...
$miXajax->configure ('debug',true);
 
....
  • A continuación debemos registrar aquellas funciones que queremos ejecutar en modo ajax.

Es decir el cliente puede solicitar para recargar solo parte de la página que se ejecute una función. Estas funciones las debemos de registrar primero

...
$ajax->register(XAJAX_FUNCTION, 'saludar');
 
....
  • Esto implicará que se en la página html se cree una función que tiene este nombre con el prefijo xajax_
  • En el caso anterior se creará una función llamada xajax_saludar(...)
  • Y para terminar este proceso de configuración, debemos usar el método que se encargue de procesar las llamadas ajax que se reciban
...
$ajax->processRequest();
 
....
  • El método processRequest() debe ser invocado antes de sacar ninguna salida

Implementando el método xajax en el servidor