Cuando un usuario pulsa la tecla enter en un elemento de una interfaz web a veces es necesario realizar alguna opción, como por ejemplo guardar con ajax los datos insertados en dicho elemento.
En ocasiones necesitamos hacer uso de iframes, por ejemplo cuando queremos mostrar de una forma sencilla una foto que acabamos de subir asincrónamente al servidor vía ajax.
Para refrescar el contenido de un iframe, podemos hacerlo con el siguiente código javascript:
var iframe = parent.frames[id_del_iframe];
iframe.window.location.reload();
Comentarios (2) Posted by Asier Marqués on Lunes, Junio 30th, 2008
Stephan Schmidt, desarrollador responsable de php-tools.net, ha publicado en stubbles.org una presentación en la que nos explica como desarrollar un proxy JSON-RPC usando para conseguirlo, un backend escrito en php con la ayuda de la api Reflection.
Normalmente, cuando se hace una petición a una sitio web, éste carga todo su código javascript en la llamada.
Sin embargo, no todo el código es ejecutado inicialmente ni tampoco a lo largo del tiempo de ejecución de sus aplicaciones o interacciones, por parte del usuario, con las mismas.
Podemos darnos cuenta de ésto al observar esta gráfica.
En ella observamos como conocidos sitios web deben cargar código javascript para luego usar normalmente un porcentaje. inferior al 50%. del mismo
Doloto es una solución de Microsoft, que aun no esta publicada y se encuentra en modo de pruebas por Microsoft Research, que ayuda a mejorar el rendimiento en aplicaciones web
Para conseguir su objetivo, Doloto analiza el código javascript de nuestras aplicaciones y creando perfiles de uso, descarga exclusivamente el código javascript necesario para inicializar la aplicación. El resto de código se transmite bajo demanda.
Una función en una aplicación que utilizase doloto tendría el siguiente aspecto:
[javascript,N]
function f(){
// descarga el cuerpo de la función “f”
var real_f_text = blocking_download(”f”);
// se prepara la función “f”
var real_f_func = this.eval(real_f_text);
// se evalua la función “f” con el objeto arguments
return real_f_func.apply(this, arguments);
}
Microsoft está probando esta tecnología en algunos sitios web, consiguiendo reducir el tiempo de carga en algunos de los mismo hasta en un 40%.
Tenéis más información sobre su arquitectura, concepto y resultados conseguidos en este interesante paper.
Comentarios (2) Posted by Asier Marqués on Jueves, Mayo 15th, 2008
Simon Willison, uno de los creadores del framework para python Django, hizo una presentación ayer sobre las ventajas de usar JQuery para tener potencia JavaScript sin que ensucie nuestro código html.
Todos aquellos que desarrollamos aplicaciones internacionales tenemos presente, o deberíamos tener presente, gettext como una de las soluciones más potentes para conseguirlo.
JQuery cuenta con un plugin que nos permite implementar gettext mediante javascript, os dejo el enlace aquí.
Comentarios (0) Posted by Asier Marqués on Miércoles, Abril 16th, 2008
Azer Koçulu ha desarrollado una librería llamada pi.comet, escrita en javascript que, de una forma realmente sencilla, nos permite hacer uso de la tecnología comet en nuestras aplicaciones web.
La diferencia entre llamadas por ajax y llamadas por comet reside en que, en las primeras, se debe iniciar una petición desde el navegador cada vez que queramos recibir una respuesta del servidor y, en las segundas, se lanza una sola petición al servidor y se van recogiendo las respuestas (siempre que la respuesta sea de tipo “application/x-dom-event-stream“).
Comentarios (1) Posted by Asier Marqués on Martes, Marzo 18th, 2008
Normalmente cuando lanzamos una petición al servidor mediante ajax, una vez iniciada la petición… no tenemos control sobre la misma y tenemos que esperar a la respuesta del servidor (excepto si usamos otras técnicas como Comet).
AjaxInterceptor es una genial por no decir brutal librería escrita en javaScript por José Manuel Alarcón Aguín, mvp de desarrollo Microsoft, que nos permite controlar las peticiones ajax una vez lanzadas.
La utilidad de ésta librería es increible, ya que nos permite detener peticiones y mostrar mensajes mientras se procesan las mismas (ya no más circulos animados o “loading” indefinidos), además de soportar crossposting entre páginas del mismo dominio y respetar historial del navegador.
Comentarios (2) Posted by Asier Marqués on Martes, Febrero 12th, 2008
JQuery en algunos casos, concretamente a mí me ha pasado usando como servidor web nginx, al hacer una petición ajax puede retornarnos un 411 de “Length required”, fallando por tanto la respuesta.
La solución consiste en agregarle la opción data, con dos corchetes (”data: {}”), a la petición ajax. Un ejemplo sería:
Asier Marqués es un profesional freelance que trabaja como analista y desarrollador de aplicaciones web, así como consultor de sistemas Microsoft.
Tiene más de 5 años de experiencia en desarrollo de aplicaciones web,
ha trabajado como profesor de informática y se ha desarrollado como administrador de sistemas en varias consultoras internacionales.