Resalta la sintaxis del código mediante Ajax

Buen script que nos permite resaltar el código que mostramos dentro de un <pre$gt;<code lang=”[lenguaje]“$gt;…</code$gt;</pre$gt; en nuestras páginas web o blogs.
El script realiza una llamada Ajax con los trozos de código y su lenguaje y recibe el html de cada trozo de código ya formateado. Utiliza GeSHi para resaltar el código, pero puede utilizar otras.
Ajax Syntax Highlighter
Vía / philsci

|

Laboratorio: barra de progreso mediante Ajax

Una de las necesidades con las que nos encontramos a la hora de realizar procesos largos en la web, es indicar al usuario que le toca esperar. A veces es bastante complicado realizar una barra de progreso que indice el estado actual del proceso que estamos ejecutando.

Una forma de realizarlo es usando Ajax. Realizamos una llamada Ajax que ejecuta la acción, y cuando el objeto Ajax tiene el estado LOADING (readyState == 3), podemos obtener la respuesta del script llamado y parsearlo para mostrar el porcentaje de acción que se ha realizado.

Para ello, estoy pensando en que un script (res.php por ejemplo) devuelva el porcentaje que lleva seguido de un guión. Por ejemplo, cuando pasa por el 1% habrá devuelto “1-” cuando lleve el 5% habrá devuelto “1-2-3-4-5-“. Parseando esto podemos saber por el último número cuanto lleva ejecutado.

El PHP sería el siguiente:

for($i=0; $i<10000000; $i++) {
if ($i%10000 == 0) echo ((int) $i/100000).'-';
flush();
}

Y el javascript sería así:

function ajaxobj() {
try {
_ajaxobj = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
_ajaxobj = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
_ajaxobj = false;
}
}
if (!_ajaxobj && typeof XMLHttpRequest!='undefined') {
_ajaxobj = new XMLHttpRequest();
}
return _ajaxobj;
}
function prueba () {
ajax = ajaxobj();
ajax.open("GET", "res.php", true);
ajax.onreadystatechange=function() {
if (ajax.readyState == 3) {
// Mostramos porcentaje
var res = ajax.responseText;
res = res.split('-');
alert(res[res.length-2]);
} else if (ajax.readyState == 4) {
// Fin
alert('FIN');
}
}
// Enviamos algo para que funcione el proceso
ajax.send(null);
} 

Como no hay nada perfecto, y menos aún Internet Explorer, sólo he sido capaz hacer que funcione en FF, Opera, Safari y Chrome.

Firebug y el rendimiento Ajax

Ajax es una de las técnicas que más se están extendiendo por Internet. Su desarrollo es sencillo, pero su abuso es importante. Hay que tener en cuidado al desarrollar usando Ajax ya que podemos tener problemas de rendimiento.
En IBM nos ofrecen un artículo interesante sobre el rendimiento de estas aplicaciones y como medirlo y mejorarlo mediante Firebug e YSlow.
El tiempo de una llamada Ajax se centra en tres aspectos: tiempo de respuesta del servidor, tiempo de transferencia y tiempo de procesado en el cliente. Es importante bajar estos tiempos ya que así agilizaremos nuestras aplicaciones.
Reduce el número de llamadas HTTP, aunque en el cliente se puedan anular, en el servidor se procesan, por lo que es tiempo de proceso malgastado. También es interesante reducir el tamaño del contenido de la respuesta que devuelve el servidor, cuanto menos haya para mandar, menos se tarda en enviar y menos se tarda en procesar.
Una lectura interesante que nos ayudará paso a paso a mejorar nuestras aplicaciones.
Ajax performance analysis

|

AsxJax: Ajax accesible

AsxJax es un framework que permite añadir accesibilidad a los desarrollos web que utilicen Ajax, así usuarios que utilicen screenreaders u otros dispositivos similares podrán disfrutar de las características que ofrece la web 2.0.

AxsJAX añade accesibilidad según lo definido por la W3C ARIA, siendo necesarios los siguientes requisitos:

  • Un navegador como Firefox 2.0 que soporte la W3C ARIA.
  • Tecnologías que respondan correctamente a las mejoras de accesibilidad añadidas por la W3C ARIA.
  • Alguna de las mejoras añadidas por AxsJAX dependen del soporte para las live regions, una característica que permite a las tecnologías como los screen readers tratar correctamente con actualizaciones asíncronas de partes de la página web.

El framework AxsJAX puede añadir accesibilidad a aplicaciones Web 2.0 existentes mediante las siguientes técnicas:

  • Como un bookmarklet.
  • Usando Greasemonkey.
  • Usando Fire Vox.

AsxJax

|

Minishowcase: galería PHP y Ajax

Minishowcase es una aplicación sencilla basada en PHP y Ajax que nos permite crear galerías de fotos facilmente, sin necesidad de configurar bases de datos o cambiar código.
minishowcase.png
Tan solo es necesario situar las fotografías en un directorio y ya dispondremos de un album, sin necesidad de crear thumbnails ya que Minishowcase se encarga de ello.
Disponible en varios idiomas, nos muestra las imágenes mediante lightbox y nos permite visualizarlas mediante un slideshow. A parte podemos compartir las galerías mediante enlaces permanentes.
Minishowcase
Vía / WebAppers

Errores al desarrollar con Ajax

Buena serie de consejos para evitar cometer errores cuando desarrollamos con Ajax.

  • Ajax es una herramienta, no un juguete: en muchos casos el uso de Ajax es totalmente innecesario.
  • No se lleva bien con el botón back del navegador: este botón es necesario para la usabilidad y javascript no se lleva muy bien con él.
  • No avisar de que se realiza una acción: cuando hago click en alguna zona de la página y se genera una acción, se debería avisar de ello para que el usuario sepa que se están actualizando datos.
  • Dejar a los usuarios offline de lado: que cada vez haya más gente con conexión a internet, no quita que nos debamos olvidar de la gente que apenas hace uso de ella, por ello es necesario pensar que las páginas en Ajax muestran datos de forma dinámica, y que no se producirá el refresco de datos si el usuario está offline.
  • Hacer esperar al usuario: la ‘A’ de Ajax es de asíncrono, no es necesario que el usuario haga algo para obtener datos, nos podemos adelantar a sus acciones e ir realizando peticiones para obtener esos datos y que el usuario no tenga que esperar la respuesta.
  • Enviar información sensible de forma visible: en muchas ocasiones enviamos al navegador los mismos datos que se reciben en la aplicación, la diferencia es que la aplicación filtra esos datos y muestra los que convienen. En el navegador, aunque no se muestren todos, si se envían se podrán ver.
  • Asumir que Ajax es una única plataforma: hay que testear correctamente las aplicaciones Ajax para que se puedan ver en las distintas plataformas que permiten Ajax, por ejemplo los distintos navegadores.
  • Múltiples usuarios: si tu aplicación la usan varios usuarios a la vez, ten en cuenta que puede haber problemas al actualizar datos por parte de unos y visualizarlos por parte de otros.
  • Excesivo trabajo para el navegador: a veces el uso de aplicaciones Ajax hace que el navegador tenga que realizar muchas tareas, lo cual puede no ser bueno para el rendimiento.
  • Olvidarse de aquellos que no tienen Javascript: según las estadísticas son un 11%, por ello siempre hay que ofrecer una alternativa no Ajax.
  • No usar enlaces: al refrescarse el contenido dinámicamente, nos olvidamos de los enlaces para poder acceder a esa información.
  • Salirse de lo común en la usabilidad: al permitirnos realizar operaciones poco habituales, nos encontramos con la circunstancia de que esperemos que el usuario realice una acción que este no espera que se tenga que hacer así. La gente suele estar acostumbrada a realizar siempre lo mismo.
  • No realizar cambios en cascada: nos olvidamos de que cuando cambia una parte de la página deben cambiar a su vez otras partes relacionadas.

Yo a parte añadiría algo que se suele decir con frecuencia pero que nunca está mal volver a repetirlo: el que asíncrono implica que si se lanzan varias peticiones al servidor, el orden de llegada no tiene que ser el mismo que el orden de envío, esto es muy importante a la hora de actualizar datos.

Ajax Mistakes

Xaja: framework Reverse Ajax

Xaja es un framework PHP que permite Reverse Ajax, también conocido como Comet. Debido a esta característica, el servidor puede enviar datos directamente al cliente, y no solo el cliente al servidor, como es el modelo normal.

Las características que nos ofrece son las siguientes:

  • Ajax: facilita la inclusión de Ajax en nuestra aplicación.
  • Pencil: para poder actualizar el HTML de forma sencilla, ofrece una herramienta llamada Pencil, se trata de decir a Xaja donde es que se quiere escribir en el HTML.
  • DOM Mapping: para manipular desde PHP el DOM del HTML.
  • Libería de etiquetas: para hacer más sencillo el desarrollo de los programadores.
  • Reverse Ajax: lo explicado anteriormente, que nos permite enviar datos al servidor.
  • Base de datos: una herramienta para acceder de forma sencilla a los datos.

Xaja

Vía / International PHP Magazine

|

jPOP: framework PHP y Ajax

jPOP es un framework para realizar aplicaciones web sin necesidad de saber Javascript o Ajax, incluso teniendo poco conocimiento de PHP.
La diferencia entre este framework y los otros es que no toma control sobre toda tu aplicación web, sino solamente de la parte donde se necesita. Además, su core ocupa tan solo 12Kb, pudiendo admitir plugins para ampliar su funcionalidad.
jPOP
Vía / dzone

|

My-BIC: otro framework Ajax

My-BIC es otro más de los numerosos frameworks que han aparecido para desarrollar aplicaciones Ajax. Ofrece 3 ficheros y un diseño que permite centrarte en realizar las cosas, más que en iniciar la tarea, siendo válido para PHP4 y PHP5.
Ofrece soporte para XML, JSON y texto en las transacciones Ajax, a parte de funcionar para Safari, Firefox, IE y Opera.
Dentro de las novedades que ofrece la recién versión 1.0, nos encontramos con: facilidad para trabajar con formularios, debug, integración con Firebug.
My-BIC
Vía / PHPDeveloper.org

|

PHPLiveX: librería PHP y Ajax

PHPLiveX es una librería PHP que facilita la llamada desde Ajax a funciones PHP. Genera código Javascript que implementa funciones con los mismos nombres y argumentos dados en una lista de funciones PHP. Cuando el código Javascript generado es llamado, empieza la petición Ajax que invoca a su respectiva función PHP en el servidor.

Actualmente está probado para los navegadores Mozilla, Firefox, Internet Explorer y Opera. Su uso parece muy sencillo En el código PHP debes indicar la función:

<?php
function miFuncion($texto){
return $texto;
}
$plx = new PHPLiveX("miFuncion");
// También se puede hacer así
// $plx = new PHPLiveX();
// $plx->Export("miFuncion");
?>

Y luego en el HTML debes escribir lo siguiente:

<script type="text/javascript">
<? $plx->Run(); ?>
</script>

PHPLiveX

Vía / VT’s Tech Blog