Últimamente está en boca de mucha gente el concepto "Unobtrusive Scripting", así que voy a explicar este concepto lo más brevemente posible y a mostrar un par de trucos para llevarlo a cabo:
Un script no intrusivo debe cumplir lo siguiente:
Debe ser usable, es decir, debe conferir un beneficio de usabilidad en el site.
Debe ser accesible, si javascript no funciona, la pagina debe mantenerse legible y entendible, aunque la pérdida de cierta usabilidad sea inevitable
Debe ser fácil de implementar; típicamente, un desarrollador web solo debe incluir el fichero en javascript en el documento y el script funciona
Debe estar separado, reside en su propio archivo .js en lugar de estar plantado en el HTML.
Los desarrolladores sabemos que romper con el hábito es a menudo difícil, pero en el mundo web, la separación puede ser buena. Veamos que significa la separación cuando hablamos de desarrollo web:
Estructura HTML -> "Qué significa"
Presentación CSS -> "Cómo se muestra"
Comportamiento Javascript -> "Qué hace?"
Podemos englobar el punto 1, 2 y 3 en una burbuja cada uno y de esta forma obtener lo que llaman "Las tres capas". Así diremos que cada página web necesita una capa de HTML estructural; sin HTML, no hay página. Sin embargo, las capas de CSS y Javascript son opcionales.
¿Por qué debo separarlos? Sin duda hay múltiples beneficios al separar cada concepto. La idea básica de la separación de la presentación y la estructura es asegurarse de que el HTML define la estructura y solo ésto. Toda la presentación se define en CSS así como el Javascript es definido aparte. Solo así conseguiremos un marcado limpio y funcional 100% sin nada más de por medio.
Por lo tanto, no deberíamos definir más funciones dentro de etiquetas <script>, ni deberíamos asignar eventos tales como onclick, onmouseover en pleno HTML. Y, por supuesto, ni un enlace más del tipo "javascript: hazAlgo();"
Toda la ayuda necesaria la encontraréis en la red, aquí van algunos enlaces:
Para finalizar quería recalcar dos prácticas (en realidad es una sola dividida en dos) que suelo usar en mis proyectos para hacer todo esto más sencillo. Cuando necesitamos pasar variables que vienen desde el lado del servidor para que ejecuten algún script nos encontramos con que en un fichero .js no podemos escribir por ejemplo PHP. La forma de lograr pasar esas variables a nuestro fichero es muy sencilla, la muestro en un ejemplo:
Y listos para usar esas variables en nuestros scripts.
En un proyecto me encontré con el problema de tener que reemplazar algunos encabezados HTML por imágenes con textos, cosa muy habitual por diseñadores odiosos . De manera que separé esas pocas imágenes en carpetas por cada idioma. La ruta quedaba como:
/es/img/imagen.jpg
Para no tener que usar un selector, id o clase para cada titulo por cada idioma, hice lo siguiente:
Como veis con la variable $lang simplemente cambio la carpeta donde está la imagen coincidiendo con el idioma. Así los encabezados serían los adecuados.
Yo solía utilizar el sistema, claro que no sabía que llevaba ese nombre. Yo cambiaba dinámicamente el diseño CSS mediante PHP de acuerdo a ciertas variables. Interesante tu artículo Por:dave73
Excelente articulo, y aprovechando el tema, existen utilerias que nos pueden ayudar a facilitarnos un poco el manejo de nuestros js para no tener tanto codigo amontonado..
Una de las funciones que uso para pasar variables entre paginas y cacharlas en mis funciones de javascript la encontre aqui:
Me ha servido mucho ya que no es necesario tener un lenguaje de servidor para cachar las variables.. Por:Darky_blog
Bueno, según veo esto es útil porque separa las variables de la URL. Pero a veces las variables no vienen de ahí, si no de Base de Datos por ejemplo y/o de PHP, entonces hay que convertirlas a javascript. Por:frenadoll
Excelente articulo.... Por:Suriv_blog
Me encanta la forma en como lo haz descrito, aunque olvidaste mencionar el DOM scripting, pero bah! la idea es la misma.
Bien hecho Mago, me encantaría seguir viendo este tipo de artículos en clab. Por:neojp_blog
Hola necesito meter una variable javascript en la siguiente linea de html, pero primero copiarla a una variable php
por favor dave73 me puedes decir como hacias eso paso a paso? necesito hacerlo yo y no se como. Gracias y muy bueno el articulo Por:merce_blog
Este artículo me parece realmente bueno. Estoy empezando en programación web y comparar esto con las chapuzas que se ven por ahí... Pues eso.
Pero hay una cosa que no entiendo. ¿Cómo conseguirías desde tu html que incluye al fichero variables.js.php pasarle los parámetros de la llamada al propio html?
Tal vez la pregunta sea muy tonta, pero ya os digo que soy novato. Gracias y un saludo Por:Carlos-blog