2011-03-18 8 views
5

Quiero hacer un sitio web completamente socket y ajax basado en la interacción del usuario. Lo que significa que los usuarios que tienen Javascript desactivado ni siquiera podrán enviar actualizaciones al sitio web de ninguna manera ni registrarse. Solo podrán leer datos.¿Qué hacer con un pequeño porcentaje de usuarios que insisten en usar cosas como NoScript?

¿Cuál es la opinión general al respecto? ¿Debo tomarme mi tiempo para hacer que el sitio web sea lo suficientemente flexible como para poder tratar con un pequeño grupo de personas que tienen scripts desactivados?

Este es también un marco que quiero poder reutilizar en más sitios web.

Respuesta

9

Cada decisión que tome afectará a una parte de los usuarios. Tamaño ideal de la pantalla, cookies on-or-off, JavaScript etc. tienen un impacto.

Pero esto no es nuevo. Si escribes una aplicación para iOS, no se puede ejecutar en Android. Si escribes un juego para xBox, no se ejecuta en PlayStation.

Mi opinión personal: si las personas han desactivado literalmente JavaScript en su navegador (y las estadísticas sugieren que es un porcentaje bastante bajo), obtendrán una experiencia web inferior. No podrán usar su sitio correctamente. OMI está bien. Has tomado una decisión y ellos también. Desea que sus usuarios obtengan una buena experiencia y, por lo tanto, se concentre en eso.

Hagamos que esto sea análogo a decir software de Windows y Mac. Windows tiene, por ejemplo, el 95% del mercado de escritorio y Mac el 5%. (Estoy inventando los números; no importa cuáles sean las estadísticas exactas). Entonces, naturalmente, escribes tu programa primero para PC. Después de eso, podría dedicar su tiempo a volver a escribir para Mac o mejorar para PC. La mayoría de las personas optan por mejorar para PC.

Estoy en el campo ahora donde no estoy demasiado preocupado por las minorías. Ya no pruebo en IE6. Requiero que JavaScript esté activado. Y necesito soporte para al menos una cookie de sesión. Si quieres permanecer en IE6, hazlo, pero esa es tu decisión, así que no vengas a llorar si no puedes usar el sitio. No soporto teléfonos de 10 años, entonces, ¿por qué apoyar un navegador de 10 años? Entiendo la lógica de que algunas personas desactiven JavaScript, pero no voy a disminuir la experiencia para el otro 98% de las personas solo para acomodarlo. Y no tengo tiempo para reescribir todo dos veces.

+0

Tengo la misma opinión. Solo quería saber lo que otros estaban haciendo sobre esto. IE6 es un poco diferente de desactivar Javascript. IE viene preinstalado en muchas computadoras, o es el navegador predeterminado en las computadoras de la escuela/trabajo. Entonces, muchos de los usuarios no conocen nada mejor, no les importa o no pueden instalar otro navegador. Pero Javascript está activado por defecto en todos los navegadores. Solo un usuario que haya pasado suficiente tiempo en Internet incluso intentará desactivarlo. Y es completamente su elección. – fent

1

Dado que no sabemos nada sobre su sitio web, su modelo de negocio, sus clientes o qué tan pequeño es "pequeño", nos sería imposible aconsejarle si vale la pena o no. Sin duda, llevaría a mucho trabajo, y probablemente algunas inconsistencias en la experiencia del usuario.

Una cosa que puede hacer para volver a utilizar tanto como sea posible entre los dos sería utilizar un modelo MVC estricto. La capa del modelo puede obtener cada parte de los datos solicitados, mientras que la capa de fachada que se encuentra delante de ella puede dar servicio a ambos tipos de solicitudes.

Digamos que su sitio web tiene una página de administrador de perfil de miembro. El modelo tiene un objeto miembro con métodos para establecer/obtener identificadores, dirección, número de teléfono, dirección de correo electrónico, etc.

Escenario A, JS está habilitado:
1) un enlace desde el "perfil de administrador" llamadas opción de menú getProfile() en el back-end. Eso construye el HTML/JavaScript para devolver llamando a getIdentifiers(), getAddress(), getPhone(), etc. y lo envía de vuelta al cliente.
2) El usuario cambia el número de teléfono en su página de perfil. Como JS está habilitado, se realizará una llamada AJAX a setPhone(), y cuando los resultados vuelvan, solo se actualizará esa parte de la página.

Escenario B, JS está deshabilitado: 1) Un enlace de la opción de menú "administrador de perfil" llama a getProfile() en el back-end. Los datos de la sesión tendrán un valor booleano que indicará que JS está desactivado, por lo que la página que se procesa tiene formularios y botones de envío. 2) El usuario envía datos a setProfile(), que contiene todos los campos, cambiados o no. Lo que se devuelve es una nueva representación de la página con la nueva información a través de getProfile().

Also see this post sobre la presentación de contenido alternativo cuando JS está apagado.

Por lo tanto, es posible . Sin embargo, como dijo Bruce, a menos que REALMENTE necesites esa población, obtienen lo que merecen. Personalmente, no pasaría por ese nivel de esfuerzo, al igual que trataría de dar cuenta de los usuarios que podrían intentar acceder al sitio a través de módems de 14.4K. Todas estas herramientas para desactivar JS le permiten especificar sitios web de excepción.

+0

Gracias. Buena idea para desarrollar una capa de modelo para mantenerla más flexible. Por ahora, no haré nada por los usuarios con JS desactivado. Pero lo mantendré lo suficientemente flexible si cambio de opinión más adelante. La forma en que lo tengo configurado ahora con controladores, vistas y ahora modelos, solo tendría que agregar algunos métodos al controlador, hacer que los formularios se envíen a estos nuevos métodos, y luego pasar formularios con JS y hacerlos enviar a través de ajax/websocket. – fent

Cuestiones relacionadas