Disclaimer: This is a personal web page. Contents written here do not represent the position of my employer.

Saturday, July 02, 2005

 

Javascript no intrusivo

A pesar de que el lenguaje JavaScript ya se viene llamando oficialmente ECMAScript, el nombre antiguo es mucho más fácil de reconocer.

Aunque soy un programador al que le atraen mucho más las aplicaciones de escritorio y los lenguajes de servidor (especialmente los estáticamente tipados como C#), no puedo evitar entrometerme en temas sobre XHTML+CSS+JavaScript, máxime cuando mi trabajo lo requiere. Y de hecho, por esta razón, creo que me estoy convirtiendo en un pseudo-experto en la materia, modestias aparte :)

El caso es que en ocasiones uno empieza a profundizar mucho en un tema y se da cuenta de cómo optimizar una manera de programar, para hacerla más mantenible y robusta. Es entonces cuando entran ganas de escribir un artículo sobre ello. Pero antes de nada, intentas que no quede ningún agujero por tapar, y a mí sí que me quedaba alguno.

La cuestión es la forma de programar con javascript de manera no intrusiva, es decir, sin mezclar código XHTML con llamadas o instrucciones javascript (en eventos de tipo onclick, onchange, etc.).

El tema está en que yo conocía sólo *UN* argumento en contra de utilizar javascript no intrusivo, contra el cual tenía una solución, pero aún sin llevar a la práctica, así que me decidí a escribir en los grupos de noticias de javascript planteando la duda, antes de escribir un posible artículo. El resultado fue éste: Attaching functions to events, from external JS files.

Y no me puedo quejar, pues las respuestas me han ayudado bastante. Una de ellas me apuntó hacia un artículo sobre Unobtrusive JavaScript, lo cual puede ser una réplica sobre lo que yo exactamente quería hablar. Otra persona sin embargo se mostró totalmente contraria al uso de esta técnica, precisamente por el inconveniente que mostraba yo en mi comentario, del que escribía como sin tener absolutamente ninguna solución.

Aunque se puede leer detalladamente sobre el problema en el enlace que ya he proporcionado, haré un resumen: cuando se utiliza javascript no intrusivo, los comportamientos de los controles son adjudicados cuando se dispara el evento onload de la página, lo que puede traer problemas cuando el cliente (o el servidor) dispone de una conexión lenta o la página es muy grande.

La solución que había pensado yo (que no es perfecta) es utilizar un DIV transicional con el típico texto de "CARGANDO...", que desaparecería al cargar la página. Desgraciadamente aún no tengo la prueba de concepto, pero estoy en ello.

Más información en enlaces derivados del artículo anteriormente mencionado: Call of the wild (scripts) y Blog sobre Unobtrusive Javascript.

Actualización: La prueba de concepto ya está lista. Bueno, en realidad, lo que he preparado ha sido un módulo denominado PreContent, que se integra dentro de mi framework JavaScript AMUSE cuyo código he subido hace poco.

Labels: , ,


This page is powered by Blogger. Isn't yours?

Categories

RSS of the category Gnome
RSS of the category Mono
RSS of the category C#
RSS of the category Programming
RSS of the category Mozilla
RSS of the category Web Development
RSS of the category Security
RSS of the category Open Source
RSS of the category Engineering
RSS of the category Misc
RSS of the category Politics

Contact with me:
aaragonesNOSPAMes@gnNOSPAMome.org

Archive
My Photo
Name:
Location: London, United Kingdom
Follow me on Twitter