2012-05-03 14 views
17

Cuando leí por primera vez el principio de unobtrusive JavaScript en el plan de estudios estándar de la web, pensé que era una gran cosa.¿Está desactualizado el JavaScript no intrusivo?

Discreto JavaScript es más una filosofía de programación que una técnica. Con mucho, su componente más importante es un claro sentido de qué funcionalidad pertenece a qué capa. Todas las funciones del sitio absolutamente cruciales deben codificarse en HTML simple, pero una vez que haya creado esa base, puede agregar una capa de JavaScript además de las básicas para que los navegadores que la admiten sean una interfaz más agradable, limpia y de aspecto más rápido.

Además, Javascript no intrusivo:

  1. separa estructura y comportamiento, con el fin de hacer que el código más limpio y el mantenimiento de la escritura más fácil navegador

  2. adelanta incompatibilidades

  3. obras con una capa HTML semántica limpia

Para mi proyecto actual utilizo este enfoque. Cuando desactivé JavaScript para otro tipo de trabajo que tenía que hacer, me sorprendió la cantidad de sitios web que están completamente rotos sin JavaScript: falta funcionalidades y falta de mucha información importante, que no estaba presente en absoluto en el conjunto. DOM.

Estos fueron especialmente los sitios de redes sociales. No debería sorprender que este fuera el caso, el tiempo de desarrollo requerido y la experiencia del usuario podrían ser mucho más importantes que la accesibilidad.

Todavía me pregunto si el JavaScript discreto no está desactualizado. Me refiero a qué navegador no es compatible con JavaScript de forma nativa. ¿Sigue siendo un enfoque que se ajusta para el año 2012? Empecé a dudarlo.

+14

Creo que depende del tipo de sitio. Un sitio de noticias debe mostrar noticias sin javascript habilitado. No esperaría que funcionara un sitio interactivo rico como google docs o facebook. Más importante aún, no gastaría el dinero extra para hacer que un sitio interactivo funcione para la pequeña proporción de personas que deshabilitan JavaScript. –

+1

@BenClayton que debería ser una respuesta – Joseph

+0

Pero, ¿qué son las bases de usuarios que no tienen JavaScript disponible hoy en día? –

Respuesta

17

Hay dos formas de acercarse a un sitio web y el uso de JS:

  1. JS como una mejora

    Estos tipos de sitios son como "documentos" en el sentido de que son análogas a periódicos, libros y cartas. No necesita efectos sofisticados para leer y usar el contenido.Y con esto viene la mejora progresiva: Desarrollar una funcionalidad básica y agregar complejidades sin sacrificar el propósito.

    La mayoría de los sitios web (grandes) usan este esquema para preservar su utilidad incluso cuando se utiliza un navegador no apto. Un ejemplo es StackOverflow, ¡que incluso funciona en un navegador de línea de comandos de lince!

    ______ 
    | JS | - JavaScript for (optional) enhancements 
    |------| 
    | CSS | - CSS for (optional) style 
    |------| 
    | HTML | - (mandatory) HTML with base content 
    '------' 
    
  2. JS como una plataforma

    Para aplicaciones web, es razonable (más como obligatorio) que son construir sobre JS en tiempo real, el contenido dinámico y funcionalidad, mientras que HTML y CSS sirve como la vista . También es aplicable a otros lenguajes de programación, donde puede ir "sin cabeza" con su programa (sin UI), como bibliotecas y complementos.

    Degradación elegante viene con este enfoque: "al revés soportar sólo hasta cierto punto, de lo contrario se obtiene ninguna en absoluto"

    ____________ 
    | HTML | CSS | - (optional) HTML and CSS view 
    |------------| 
    |  JS  | - (mandatory) JS platform 
    '------------' 
    

Por lo general se reduce a una cuestión de "¿Es un documento o una aplicación? "

3

Diferentes compañías toman diferentes enfoques. Por ejemplo, Google para su búsqueda utiliza JavaScript discreto que se degrada graciosamente, pero para GMail mantienen un sitio separado de HTML único que desarrollaron más tarde después de la versión de GMail JS.

Para mí, depende de

  1. Complejidad
  2. Funcionalidad,
  3. Costo
  4. usuario impactado recuento

para decidir si se debe hacer Degradación elegante usando JS discretos o para construir un sitio exclusivo dedicado a HTML o ignorar completamente esa base de usuarios.

Cuestiones relacionadas