Diferencia entre revisiones de «Usuario:ManuelRomero/PHP/xajax»

De WikiEducator
Saltar a: navegación, buscar
Línea 70: Línea 70:
 
</source>
 
</source>
 
*El método '''''processRequest()''''' debe ser invocado antes de sacar ninguna salida
 
*El método '''''processRequest()''''' debe ser invocado antes de sacar ninguna salida
 +
{{Resumen|
 +
<source lang=php>
 +
<?php
 +
//cargo la librería de xajax
 +
require ('xajax_core/xajax.inc.php');
  
 +
$ajax = new xajax();
 +
 +
//Para poder tener una traza de lo que ocurre
 +
$ajax->configure('debug',true);
 +
//Especificar la ubicación de la librería (En este caso innecesario)
 +
$ajax->configure('javascript URI','./');
 +
 +
//Estas funciones podrán ser invocadas de forma asíncrona desde el cleinte
 +
$ajax->register(XAJAX_FUNCTION, 'saludar');
 +
$ajax->register(XAJAX_FUNCTION, 'otraFuncion');
 +
//Estas acciones implicarán que en el html del cliente se creen las funciones xajax_saludar ()  y xajax_otraFuncion()
 +
 +
 +
//Este método procesará las llamadas que reciba la página  ????
 +
//Imporante llamarla antes de que el guión genere ningúna salida.
 +
$ajax->processRequest();
 +
 +
 +
//La librería necesita generar código java script en la página que enviamos al cliente
 +
$ajax->printJavascript();
 +
 +
</source>
 +
}}
 
===Implementando el método xajax en el servidor===
 
===Implementando el método xajax en el servidor===

Revisión de 19:25 25 ene 2016

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


Icon summary.gif

Resumen

<?php
//cargo la librería de xajax
require ('xajax_core/xajax.inc.php');
 
$ajax = new xajax();
 
//Para poder tener una traza de lo que ocurre
$ajax->configure('debug',true);
//Especificar la ubicación de la librería (En este caso innecesario)
$ajax->configure('javascript URI','./');
 
//Estas funciones podrán ser invocadas de forma asíncrona desde el cleinte
$ajax->register(XAJAX_FUNCTION, 'saludar');
$ajax->register(XAJAX_FUNCTION, 'otraFuncion');
//Estas acciones implicarán que en el html del cliente se creen las funciones xajax_saludar ()   y xajax_otraFuncion()
 
 
//Este método procesará las llamadas que reciba la página  ????
//Imporante llamarla antes de que el guión genere ningúna salida.
$ajax->processRequest();
 
 
//La librería necesita generar código java script en la página que enviamos al cliente
$ajax->printJavascript();


Implementando el método xajax en el servidor