Saltar la navegación

3.1.- Xajax.

Xajax es una librería PHP de código abierto que permite generar aplicaciones web con tecnología AJAX. Facilita la utilización desde el cliente de funciones existentes en el servidor. Al utilizar los objetos AJAX en el código PHP, las páginas HTML que se obtienen incorporan el código JavaScript necesario para realizar las llamadas al servidor mediante AJAX. En la página web del proyecto tienes información disponible sobre su utilización.

Página en GitHub del proyecto

Para poder utilizar AJAX, descárgate la última versión de la librería desde la sección de descargas de su página web. De las carpetas que contienen los ficheros comprimidos, necesitas el contenido de "xajax_core" y "xajax_js". Cópialas a una ruta de tu servidor web en la que sean accesibles por tus aplicaciones web. Descargar ZIP

En las páginas PHP en que quieras utilizar AJAX, deberás incluir la librería escribiendo el siguiente código:

require_once("xajax_core/xajax.inc.php");

Asegúrate de que la ruta a la librería sea la correcta. Lo siguiente es crear un objeto de la clase xajax, indicando como parámetro el script PHP que contiene las funciones a las que se podrán realizar llamadas mediante AJAX. Puedes incluir estas funciones en una página aparte o en la misma página PHP, y en este caso no será necesario indicar ningún parámetro:

$xajax = new xajax();

AJAX necesita incluir en la página web que se envía al navegador su propio código JavaScript. Para ello, tienes que incluir en tu código PHP la siguiente llamada al método printJavaScript del objeto $xajax:

$xajax->printJavascript();

En caso necesario, también deberás configurar la ruta de acceso a la carpeta xajax_js que contiene el código JavaScript de la librería (usa tu propia ruta como segundo parámetro). Esta carpeta se está incluida en el proyecto:

$xajax->configure('javascript URI','./libs/');;

Existen otras opciones de configuración de Xajax. Por ejemplo, cuando las cosas no funcionan como deberían, es muy interesante la opción que activa los mensajes de depuración:

$xajax->configure('debug',true);
Imagen de una captura del navegador Firefox en la que se muestra la ventana de depuración que genera la librería Xajax.
Captura de pantalla Firefox (Elaboración propia.)

Y por último, tienes que utilizar el método "register()" para registrar cada una de las funciones PHP del servidor que estarán disponibles para ser ejecutadas de forma asíncrona desde el navegador:

$xajax->register(XAJAX_FUNCTION,"funcion1");
$xajax->register(XAJAX_FUNCTION,"funcion2");
. . .

En el script PHP en que definas las funciones (si no es la misma página que la anterior), tienes que incluir la librería, crear el objeto y registrar las funciones de la misma forma que hiciste antes:

require_once("xajax_core/xajax.inc.php");
$xajax = new xajax();
$xajax->register(XAJAX_FUNCTION,"funcion1");
$xajax->register(XAJAX_FUNCTION,"funcion2");

Al registrar una función, web crea automáticamente una función JavaScript en el documento HTML con su mismo nombre prefijado por "xajax_". En el caso anterior, se crearán las funciones "xajax_funcion1" y "xajax_funcion2".

Además deberás utilizar el método "processRequest()", que es el encargado de procesar las llamadas que reciba la página.

$xajax->processRequest();

Es importante tener en cuenta que la llamada a processRequest debe realizarse antes de que el guion PHP genere ningún tipo de salida.

En cada una de las funciones que definas, podrás instanciar y utilizar un objeto de la clase xajaxResponse para devolver al navegador los comandos resultado del procesamiento:

function funcion1($a){
    $respuesta = new xajaxResponse();
    . . .
    . . .
    return $respuesta;
}