Javascript es tan flexible y permite llevar a cabo una cantidad de tareas tal que es fácil pecar utilizándolo para cosas que, originalmente, no fue concebido.
Esto implica un problema cuando hay otros lenguajes que harÃan mejor una tarea determinada. Repasemos en qué casos resulta mejor usar Javascript y en cuáles no.
Cuándo NO usar javascript
Validación de formularios
Con Javascript puedes validar formularios. Puedes crear una gran experiencia del usuario utilizando este método, pero serÃa tonto no validar todas las entradas nuevamente con un lenguaje de lado del servidor antes de procesarlas. Si deseas elegir uno o el otro, utiliza el del lado de servidor. Si puede hacerse con otro lenguaje, usa el otro lenguaje.
Insertando contenido
Si necesitas cargar un bloque de navegación dinámico y no lo puedes crear en un archivo que puede ser incluido en el lado del servidor de la página de inicio; puedes utilizar la función load de jQuery para llamar al bloque. Funciona genial a menos que no puedas o quieras utilizar JavaScript. Si puede hacerse con otro lenguaje, usa el otro lenguaje.
De forma similar, el concepto completo de AJAX es generalmente considerado un hack. Es una manera de simular la comunicación bidireccional en una tecnologÃa construida para una entrega de un solo lado. Cuando surge algo nuevo que acomoda con más naturalidad la comunicación bidireccional de navegador-servidor, AJAX se marcha. Si puede hacerse con otro lenguaje, usa el otro lenguaje.
Dando estilo
JavaScript es capaz de aplicar estilo a los elementos de una página. Ese también es el trabajo de CSS. Tener mucha información de estilo hace que el Javascript sea más difÃcil de leer, y las actualizaciones de estilo más difÃciles de rastrear. Si puede hacerse con otro lenguaje, usa el otro lenguaje.
Una de las mayores razones por la cuál las librerÃas JavaScript son populares es porque abren la puerta a una gran cantidad de posibilidades de diseño. Puedes realizar fades in y out, animar los tamaños y posiciones y más. Pero estas cosas están, por lo general, relacionadas con el diseño y no con la funcionalidad. Por lo que CSS es más apropiado para estas cosas. Si puede hacerse con otro lenguaje, usa el otro lenguaje.
Cuándo usarlo
Suficientes casos de cuándo no usarlo. Existen muchas circunstancias en las que utilizar Javascript es la única opción. Por ejemplo, en los eventos. Javascript es el único lenguaje disponible para hacer que tu sitio web se comunique con el navegador y observar eventos como clics, doble clics, focos de mouse, teclas presionadas… y la lista sigue. Si necesitas acceso a dichos eventos, Javascript es tu territorio.
Fuente: CSS-Tricks








Jueves, 4 de Febrero de 2010 a las 08.19
Pienso que el problema ya no está en cuándo usar o no usar javascript, sino en cómo usar javascript. AJAX es un excelente aliado que mejora notablemente la experiencia de usuario, siempre y cuando se desarrolle este código de forma correcta, es decir, creando código no obstrusivo para el navegador. Entonces sà tendrÃamos un site accesible aunque javascript estuviese deshabilitado en el navegador.
Jueves, 4 de Febrero de 2010 a las 15.26
La idea final del post es buena, pero creo que está mal enfocada y no explicas apenas porqué hacerlo.
Por ejemplo, la validación de formularios, a parte de poder hacerse en cliente con javascript para dar una experiencia de usuario más rica y fluida, es imprescindible hacerla en servidor pues con unos conocimientos mÃnimos los formularios se pueden modificar con oscuros propositos.
El insertar bloques de código, de cara al seo y de la accesibilidad deberÃa hacerse en el servidor para que cualquier programa sin necesidad de javascript pueda leer todo el contenido de la página.
Eso de dar estilos con javascript me suena un poco raro, lo habitual es darle clases css a elementos mediate javascript para que el usuario reciba feedback de sus acciones sin tener que recargar la página. Por otro lado eso de animar elementos como dices sin javascript no se me ocurre como, a excepción de lo que han hecho algunos máquinas del CSS, pero lo que he visto suele ser experimental.
Saludos.
Viernes, 5 de Febrero de 2010 a las 11.06
A mi criterio javascript es uno de los mejores inventos que hay. Y con la salida de Jquery todo se simplifico muchisimo. Se puede hacer practicamente lo que uno quiera, y todo de forma muy simple y cross-browser.
Domingo, 7 de Febrero de 2010 a las 01.24
Bueno… y ahora me surge la duda, ¿Por qué no validar los formularios con JS en el cliente, y de esta manera, cuando los datos lleguen al servidor, al menos vas a tener la seguridad de que ya están todos y bien validados?
Miércoles, 10 de Febrero de 2010 a las 17.46
Me gustarÃa que ahondaras un poco más en este artÃculo y expusieras los equivalentes para trabajarlos sin javascript, ya que sinceramente uno se vuelve dependiente de jscript y todas sus aplicaciones y frameworks
Martes, 16 de Febrero de 2010 a las 11.09
@Pablo Molina: Porque es muy fácil desactivar javascript y enviar datos no válidos al server. Recuerden siempre, javascript está para mejorar la experiencia del usuario y nada más. No hay nada que no se pueda hacer en una web sin javascript. No es imperioso utilizarlo.
Cuando se desarrolla un sitio web hay que emplear la técnica conocida como “mejoramiento progresivo” (progresive enhancement) o también “degradación elegante” (graceful degradation) que consiste en apoyarse en HTML puro, hacer que el sitio tenga toda la funcionalidad SIN javascript y recién cuando esté terminado aplicar javascript para mejorar la experiencia del usuario.
En el caso de la validación esto implicarÃa, por ejemplo, empezar por un formulario simple, que se envÃa al servidor y se valida por backend. Se devuelven los mensajes de error en la recarga de la página y se muestran al usuario. Luego, se puede aplicar javascript para pre-validar el form y mostrar los mensajes mientras el usuario está llenando el formulario, evitando que cometa errores innecesarios y mejorando su experiencia con el sitio.
Pero aunque cueste más trabajo, desarrollando de esta manera se logra que el sitio siga funcionando correctamente en navegadores con javascript desactivado, en navegadores solo texto como Lynx, en celulares, en lectores de pantalla para ciegos y otros dispositivos fuera de lo común.
Martes, 16 de Marzo de 2010 a las 19.52
Me gustó bastante el artÃculo, pero debo hacer notar que tanto AJAX como jQuery son derivados de javascript, esto es, para la inserción de contenidos estarás ocupando javascript de igual manera.
AJAX recordemos es una abreviatura para (Asynchronous Javascript And Xml).
jQuery está creado sobre javascript, es una librerÃa hecha a partir de la función jQuery o $, que no hace más que trabajar con closures dentro de si.
Un saludo y sin afan de discutir, solo de dar mi opinión ^^.
Greetings
Lunes, 31 de Mayo de 2010 a las 12.11
EL autor del articulo pareciera facil decir eliminar javascript en formularios, pero no toma en cuenta que el usuario es flojo, por tanto si le dices que algo es obligatorio, no lo toma en cuenta, si le dices que es una fecha escribe letras, en sitios de poco transito, si lo quitas puede no afectar, pero sitios de alto transito y donde tengas reportes desde el servidor, movientos de archivos, un formulario para que sea valiodado puede tardar 30 o mas segundos desde el servidor, por tanto para que despues diga que no sirvio algo, se convierte en datos que suben que bajan saturando mas la conexion.
Por tanto las validaciones son en javascriopt para desahogar el ancho de banda y el servidor, y en el servidor para revalidar y hacer validaciones que desde el cliente no son posibles.