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

De WikiEducator
Saltar a: navegación, buscar
 
(12 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
===Objetivo===
+
{{TEP}}
*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.
+
{{:Usuario:ManuelRomero/PHP/xajax/nav}}
*Podemos ver estas librerías en
+
<br />
#http://ajaxpatterns.org/PHP_Ajax_Frameworks 
+
__NOTOC__
#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
+
<source lang=php
+
require_once (./xajax_core/xajax_inc.php');
+
</source>
+
*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();
+
</source>
+
*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
+
<source lang=php>
+
...
+
$miXajax->configure ('javascript URI','./libs/');
+
 
+
....
+
</source>
+
 
+
*Podemos también establecer (solo para el desarrollo), que nos de un traceo del proceso
+
<source lang=php>
+
...
+
$miXajax->configure ('debug',true);
+
 
+
....
+
</source>
+
*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
+
 
+
<source lang=php>
+
...
+
$ajax->register(XAJAX_FUNCTION, 'saludar');
+
 
+
....
+
</source>
+
 
+
*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
+
 
+
<source lang=php>
+
...
+
$ajax->processRequest();
+
 
+
....
+
</source>
+
*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===
+

Última revisión de 22:20 15 ene 2018

Road Works.svg Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos.
Ver página de charlas.
Road Works.svg