¿El JavaScript discreto está desactualizado? [cerrado]

Cuando leí por primera vez el principio de JavaScript discreto en el Currículo Estándar Web pensé que es una cosa realmente genial.

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

Además, JavaScript discreto:

  1. separa la estructura y el comportamiento, para que su código sea más limpio y el mantenimiento de la secuencia de comandos sea más fácil

  2. evita las incompatibilidades del navegador

  3. funciona con una capa HTML limpia y semántica

Para mi proyecto actual utilizo este enfoque. Cuando desactivé JavaScript para algún otro tipo de trabajo que tenía que hacer, me sorprendió cuántos sitios web están completamente dañados sin JavaScript: falta funcionalidad, así como ausencia de mucha información importante, que no estaba presente en absoluto. 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 JavaScript discreto no está desactualizado. Quiero decir, ¿qué navegador no es compatible con JavaScript de forma nativa? ¿Sigue siendo un enfoque adecuado para el año 2012? Empecé a dudarlo.

preguntado el 03 de mayo de 12 a las 10:05

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 enriquecido 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. -

@BenClayton esa debería ser una respuesta:

JavaScript discreto está vivo, pero muchos desarrolladores web simplemente no lo entienden: "Si no puedo usar su sitio en mi teléfono móvil, no haré una compra". Los sitios con javascript discreto funcionan bien en mi teléfono, los que están cargados de funcionalidades triviales no. -

La pregunta se ha cerrado, por lo que no puedo publicar esto como respuesta, pero: incluso cuando se requiere JS, el enfoque discreto aún tiene valor como técnica de organización de código; consulte los tres puntos mencionados en su cita anterior. Es preferible usar ese enfoque que tener fragmentos de código no relacionados dispersos a través de un documento HTML. Esto es verdad sin tener en cuenta de si uno también está adoptando un enfoque de mejora progresiva. (Piense en ello como la contraparte de JS para mantener los estilos en un archivo .css separado en lugar de tenerlos todos en línea en el HTML).

Creo que la respuesta aceptada es excelente, y tengo que preguntar, ¿por qué demonios se cerró esta pregunta como "no constructiva"? Es extremadamente constructivo y cada vez más relevante, y bueno para el que pregunta para desafiar algunos mantras que se repiten con frecuencia y se malentienden con frecuencia. -

2 Respuestas

Hay dos formas de abordar 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álogos a periódicos, libros y cartas. No necesita efectos sofisticados para leer y usar el contenido. Y con esto viene la mejora progresiva: Construir una funcionalidad básica y agregar complejidades sin sacrificar el propósito.

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

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

    Para las aplicaciones web, es razonable (más bien obligatorio) que se basen en JS para contenido y funcionalidad dinámicos en tiempo real, mientras que HTML y CSS sirven como vista. Es sinónimo de otros lenguajes de programación, donde puede ir "sin cabeza" con su programa (sin interfaz de usuario) como bibliotecas y complementos.

    La degradación elegante viene con este enfoque: "Soporte hacia atrás solo hasta cierto punto, de lo contrario no obtienes ninguno"

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

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

Respondido 25 Jul 12, 13:07

Diferentes empresas adoptan diferentes enfoques. Por ejemplo, Google para su búsqueda utiliza javascript discreto que se degrada con gracia, pero para GMail mantienen un sitio solo HTML separado que desarrollaron más tarde después de la versión JS de GMail.

para mi depende de

  1. Complejidad
  2. funcionalidad,
  3. Costo
  4. Número de usuarios afectados

para decidir si hacer una degradación elegante usando JS discreto o construir un sitio solo HTML dedicado o ignorar esa base de usuarios por completo.

contestado el 03 de mayo de 12 a las 10:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.