Um desabilita o JavaScript em um ambiente de navegador devido às seguintes considerações:
- Velocidade e largura de banda
- Usabilidade e Acessibilidade
- Suporte de plataforma
- Segurança
Velocidade e largura de banda
Muitos aplicativos usam JavaScript demais para o seu próprio bem ... Você precisa que partes da sua interface sejam atualizadas por chamadas AJAX o tempo todo? Talvez sua interface pareça ótima e rápida quando usada com uma conexão de banda larga, mas quando você precisar fazer o downgrade para velocidades de conexão mais lentas, é preferida uma interface mais simplificada. E desativar o JavaScript é uma boa maneira de impedir que aplicativos da Web estupefatos atualizem o mundo a cada 15 segundos ou mais, sem uma boa razão. (Já olhou para a quantidade de dados que o Facebook envia? É assustador. Porém, não é apenas um problema relacionado ao JS, mas é parte dele).
Também tendemos a descarregar cada vez mais o processamento para o cliente e, se você usa hardware minimalista (ou apenas desatualizado), é dolorosamente lento.
Usabilidade e Acessibilidade
Nem todas as interfaces de usuário devem ser expressas de maneira dinâmica, e o conteúdo gerado pelo servidor pode ser perfeitamente aceitável em muitos casos. Além disso, algumas pessoas simplesmente não querem esse tipo de interface. Você não pode agradar a todos, mas às vezes você tem a chance e o dever de satisfazer todos os seus usuários.
Finalmente, alguns usuários têm deficiências, e você nunca as ignorará !!!
Os piores cenários aqui, na minha opinião, são sites do governo que tentam "modernizar" suas interfaces de usuário para parecerem mais amigáveis ao público, mas acabam deixando para trás uma grande parte do público-alvo. Da mesma forma, é uma pena que um estudante universitário não possa acessar o conteúdo do curso: porque é cego e o leitor de tela não suporta o site, ou porque o site é muito pesado e requer plug-ins modernos ad-hoc que ele / ela não consegue instalar no laptop recondicionado comprado no e-bay há 2 anos, ou novamente porque ele volta para casa em outro país para as férias de primavera e as restrições locais de largura de banda não conseguem lidar com a carga útil do local.
Nem todo mundo vive em um mundo perfeito.
Suporte de plataforma
Esse ponto está relacionado aos dois anteriores e tende a ser menos relevante hoje em dia, pois os navegadores incorporam mecanismos JavaScript que são um nível de magnitude mais eficiente do que costumavam ser, e isso continua melhorando.
No entanto, não há garantia de que todos os seus usuários tenham o privilégio de usar navegadores modernos (devido a restrições corporativas - que nos obrigam a oferecer suporte a navegadores antediluvianos sem um bom motivo, na verdade) ou por outros motivos que podem ou não ser válidos). Como mencionado por "Matthieu M." nos comentários, é preciso lembrar que muitas pessoas ainda usam hardware de qualidade inferior e que nem todo mundo usa o smartphone mais recente e bacana. Atualmente, ainda existe uma parcela significativa de pessoas usando telefones que possuem navegadores incorporados com suporte limitado.
Mas, como mencionei, as coisas melhoram nessa área. Mas você ainda precisa se lembrar dos pontos anteriores sobre as limitações de largura de banda se continuar pesquisando com muita regularidade (ou seus usuários terão uma boa conta telefônica).
É tudo muito inter-relacionado.
Segurança
Embora obviamente você possa pensar que nada de particularmente perigoso possa ser feito com o JavaScript, considerando que ele é executado em um ambiente de navegador, isso é totalmente falso.
Você percebe que, quando visita P.SE e SO, é automaticamente conectado se estiver conectado a qualquer outra rede, certo? Há algumas JS lá. Essa parte ainda é inofensiva, mas usa alguns conceitos que podem ser explorados por sites malévolos. É completamente possível que um site use JavaScript para coletar informações sobre algumas coisas que você faz (ou fez) durante sua sessão de navegação (ou as anteriores, se você não limpar os dados da sessão sempre que sair do navegador ou executar o agora modos de navegação anônima / privada comuns extensivamente) e, em seguida, basta enviá-los para um servidor.
As vulnerabilidades recentes (trabalhando nos principais navegadores da época) incluíam a capacidade de coletar os dados dos formulários de entrada salvos (testando combinações para você em uma página malévola) e registrando os textos sugeridos para cada possível combinação de letras iniciais, possivelmente dizendo aos atacantes quem você é , onde você trabalha e mora ) ou para extrair seu histórico e hábitos de navegação ( um truque muito inteligente que faz algo tão simples quanto injetar links no DOM da página para combinar com a cor do link e ver se ele foi visitado . Você só precisa fazer isso em uma tabela grande o suficiente de nomes de domínio conhecidos. E seu navegador está ficando mais rápido no processamento de JavaScript, esse tipo de coisa é feita rapidamente.)
Além disso, não devemos esquecer que, se o modelo de segurança do seu navegador é defeituoso ou os sites que você visita não se protegem o suficiente contra ataques XSS, pode-se usar o JavaScript para simplesmente acessar suas sessões abertas em sites remotos.
O JavaScript é inofensivo ... se você o usar em sites confiáveis. Gmail. Facebook (talvez ... e nem mesmo ...). Leitor do Google. StackExchange.
Mas sim, claro, o JavaScript não pode ser tão ruim, certo? E há coisas mais assustadoras a temer online de qualquer maneira. Como pensar que você é anônimo quando realmente não é muito , como mostra o experimento Panopticlick da EFF . O que também é parcialmente feito usando JavaScript. Você pode até ler os motivos deles para desativar o JavaScript e evitar impressões digitais do navegador .
Tudo isso dito, pode haver situações perfeitamente boas em que você não precisa se preocupar em dar suporte ao JavaScript. Mas se você oferecer um site de serviço público, considere aceitar os dois tipos de clientes. Pessoalmente, acho que muitos aplicativos e sites modernos funcionariam tão bem quanto o antigo modelo de conteúdo gerado pelo servidor sem JavaScript no lado do cliente, e ainda assim seria ótimo e possivelmente muito menos consumível.
Sua milhagem pode variar dependendo do seu projeto.