Mootools es un Framework (Estructura de soporte definida, mediante la cual otro proyecto de software puede ser desarrollado), web orientado a objeto para JavaScript, de código abierto (Open Source). Gracias a dicho programa podemos desarrollar aplicaciones de escritorio de una forma sencilla y elegante.
Es interesante leer la información de la wikipedia para entender mejor el porqué es necesario programas como Mootools, Jquery, Dojo, Prototype o script.aculo.us para desarrollar páginas web cada vez más interactivas con el usuario final (Internauta).
Mootools tiene un API para ajax, pero en mi opinión el modulo JPSpan está más desarrollado para entornos AJAX – PHP.
JPSpan una de las cosas que tiene muy buenas es el control de 6 tipos diferentes de errores.
- Control de Error en la comunicación con XMLHttpRequest.
- Mensajes de Error durante la comunicación con el Servidor.
- Control de Error desde el Servidor al Cliente.
- Mensajes de Error de Aplicación del Servidor al Cliente.
- Mensajes de Error de Aplicación del Cliente al Servidor.
- Error de sintaxis en los programas de JavaScript
JPSpan no se centra sólo en gestionar bien los mensajes de error, sino en la comunicación de datos pudiendo ser en los siguientes formatos: JSON, PHP, XML, TXT.
Podemos utilizar Mootools como gestor de eventos para controlar las teclas y el ratón en nuestra aplicación WEB, dejando el código de nuestra página sólo con código HTML, sin ninguna instrucción JavaScript y CSS.
Se dice que la era de la WEB 2.0 es eso, uno o varios ficheros con extensión .css para los estilos, uno o varios ficheros .js para el código JavaScript y por último una página realizada en php o html o .NET o Java, que su resultado final es sólo código HTML.
Todo lo expuesto no es posible si no tenemos herramientas como Mootools o JPSpan para poder realizar nuestros proyectos con una precisión y fiabilidad increible.
Pero todo tiene una pega, y son las incompatibilidades que un programador tiene cuando quiere unir diferentes programas (Mootools y JPSpan) para poder llegar a un resultado final esperado por el programador, cuando tenemos dichos problemas, nos es muy dificil solucionarlos por tener poca ayuda disponible en Internet.
Escribo dicho post para explicar cómo solucionar un problema grave de funcionamiento del modulo JPSpan utilizando Mootools como framework en nuestras aplicaciones Web.
El problema radica en la no recepción de parámetros o datos enviados por nuestro programa realizado en JavaScript al servidor de datos PHP.
Para solucionar el problema tenemos que ir al programa post.js que está en JPSpan/js/request, buscamos la instrucción (ver código abajo) y añadimos la instrucción :
if (!isNaN(argName)) { y su parentisis al final ),
for ( var argName in this.args ) {
if (!isNaN(argName)) {
try {
this.body += sep + argName + ‘=’;
this.body += encodeURIComponent(this.encoder.encode(this.args[argName]));
} catch (e) {
throw JPSpan_Client_Error(e, 1006);
}
sep = ‘&’;
}
}
Añadir las dos instrucciones que están en rojo, dicha instrucción pregunta si el índice del objeto o el parámetro es numérico, si es así lo procesa, sino no lo graba en this.body, de esa forma sólo enviamos los parametros deseados al servidor y eliminamos un montón de datos que el módulo Mootools ha grabado el solito sin que nosotros le digamos nada.
Una vez modificado el programa post.js, tenemos que realizar la misma operación con el programa get.js
for ( var argName in this.args ) {
if (!isNaN(argName)) {
try {
uri += sep + argName + ‘=’;
uri += encodeURIComponent(this.encoder.encode(this.args[argName]));
} catch (e) {
throw JPSpan_Client_Error(e, 1006);
}
sep = ‘&’;
}
};
El resto de funcionalidades de JPSpan no he notado nada anormal cuando incorporamos en nuestra página el módulo Mootools para realizar nuestros programas WEB 2.0 estilo escritorio.
Saludos de telepieza.