É uma prática comum minimizar o uso de JavaScript ao criar um site? [fechadas]


32

Sou desenvolvedor web há quase 10 anos e adquiri o hábito de tentar não usar JavaScript sempre que possível. Não estou falando sobre a criação de aplicativos Web aqui, mas de sites direcionados a bancos de dados.

Essa é uma abordagem boa / respeitada?


6
Desabilito o javascript padrão e o noscript me informa de quais fontes os javscripts são carregados. Não é incomum um site carregar javascripts de mais de 10 fontes secundárias, que por sua vez também carregam javascripts de fontes terciárias. E não é incomum que uma página carregue javascript de mais de 20 fontes externas no total. Então, eu diria: minimizar o uso de javascript está fora da janela.
Pieter B

9
Observei que quanto mais javascript você confiar, menos seu navegador será otimizado para navegação e SEO. Não posso contar quantos sites saí por causa de "links javascript" e outros.
BiAiB 29/08/2012

1
Eu descobri que há muito javascript no internetz. Os problemas são: 1) indexadores simples não entendem js, 2) grande quantidade de js queima CPU 3) algumas plataformas ainda não possuem js (telefones, navegador de links). Portanto, evitar js quando desnecessário é uma boa prática.
Permeakra

Por que essa pergunta da semana? Eu votaria isso não claro e não construtivo. Em geral, "devo usar o X?" perguntas não são apreciadas neste site. Talvez alguém possa me esclarecer.
Mark E. Haase

A pilha da web da Microsoft (até agora com o MVC) contava com o JS para TODOS OS CLIENTES DE BOTÃO ÚNICO no ASP.NET e no SharePoint. Portanto, não, não é comum minimizar o uso.
Graham

Respostas:


51

É o instinto da maioria dos programadores de reduzir todos os tipos de código. Quanto menos código, menos complexidades e menos pontos de erro possível no referido código. Esta regra se aplica ao Javascript, bem como a outros idiomas. Você está apenas mantendo a tradição.

Use o Javascript conforme necessário / desejado nas páginas HTML ... mas não há motivo para usá-lo quando não for realmente necessário.


9
Evitar JavaScript é uma questão diferente do instinto geral de evitar mais código. Com o JS, não se trata apenas de reduzir a complexidade do desenvolvimento; existem problemas reais de compatibilidade com seus usuários.
jhocking

34

10 anos atrás, poderia ter sido uma boa ideia. Atualmente, a maioria das partes da Internet (pelo menos algumas partes muito populares) tornou-se quase inutilizável ou fornece apenas uma funcionalidade muito restrita ao desativar o Javascript no navegador. Então, hoje IMHO, você pode esperar que seus usuários tenham o Javascript ativado.

E existem muitas estruturas, como o JQuery, para solucionar as incompatibilidades do navegador. IMHO, hoje não existe um motivo real para você se restringir ao não usar Javascript no seu site - o único motivo pode ser o fato de você não ter utilidade para ele.

EDIT: uma pergunta diferente é: se você fornecer alguma funcionalidade mínima do seu site quando seus visitantes não tiverem o JS ativado - isso é uma boa ideia, pelas razões apontadas por alguns dos comentaristas.

EDIT2: certamente para cada site, é preciso encontrar um equilíbrio entre facilidade de uso, facilidade de busca e esforço de desenvolvimento. Hoje, o IMHO Javascript pode ajudar a melhorar esse equilíbrio - se usado com sabedoria. Dito isso, acho que atualmente não há necessidade de minimizar o uso de Javascript hoje em dia para manter esse equilíbrio. Use-o com cuidado e não o demonize.


17
Aqui estão alguns: SEO, agregadores da Web, leitores de tela, NoScript, curl, navegadores móveis. Desabilito os scripts por padrão e a maioria da internet ainda funciona bem.
tdammers

7
Se um site não for utilizável sem javascript, ele não poderá ser efetivamente rastreado pelo Google e poderá ou não ser utilizado em um contexto RESTful. Mesmo Facebook é, pelo menos minimamente utilizável sem javascript
GordonM

9
Concordo com a maior parte do que é dito aqui, mas sou contra a idéia de que um site seja "pelo menos minimamente utilizável sem JavaScript". Isso está errado: deve ser maximamente utilizável sem JavaScript.
Jörg W Mittag

4
@ JörgWMittag Se você deseja desativar uma tecnologia da Web, não deve esperar obter todos os benefícios do site. Os cenários são diferentes, mas se estou criando um aplicativo Web, provavelmente não estou perdendo meu tempo construindo compatibilidade total com uma minoria de usuários que se recusam a mudar para o século XXI. Semelhante a como eu não apoio o IE 6 na maioria dos meus projetos.
Tom Marthenal 01/09/12

2
É apenas profissional oferecer suporte a todos os casos de uso. Se você perdeu, tudo bem, todo mundo erra de vez em quando, mas negligenciá-los é um problema diferente. Sou a favor do desenvolvimento de sites 100% SEM JS e, depois de fazê-lo funcionar, adicione o JS para otimizar tarefas e melhorar o UX.
Spidey

13

Ter um site que pode ser usado sem JavaScript significa que ele está disponível para o maior público possível. Embora seja verdade que a maioria dos navegadores suporta JavaScript e a maioria dos usuários o deixa ativado por padrão, você não pode contar com isso com certeza. Afinal, nem tudo que acessa seu site é um navegador; se você deseja que seu site seja indexado adequadamente por mecanismos de pesquisa como o Google, o GoogleBot precisará navegar no site sem JavaScript.

Também existem softwares especializados de navegação na Web em que o JavaScript não está disponível ou não funciona conforme o esperado. Software de leitura de tela ou Braille usado por deficientes visuais, por exemplo. Também existem ambientes em que a memória é restrita e ter grandes quantidades de javascript pode tornar a experiência de navegação desagradável ou até mesmo impraticável, como navegadores de smartphones.

Você deve examinar o conceito de "aprimoramento progressivo", em que cria um site para funcionar sem javascript e, em seguida, adiciona uma camada de javascript na parte superior para melhorar a experiência do usuário. Dessa forma, você terá um site que seja pelo menos utilizável para pessoas sem javascript.

Você não precisa se esforçar para fornecer todos os recursos possíveis que planeja implementar com JavaScript em navegadores que não sejam JavaScript, mas ainda é importante deixar pelo menos os casos de uso básicos disponíveis sem JavaScript. Ser capaz de navegar no site está obviamente no topo da lista, mas se você estiver criando um site de comércio eletrônico, tornar o processo de check-out dependente de JavaScript seria tolo, pois poderia custar-lhe vendas.


4
Absolutamente. Javascript deve ser usado como tempero, não como prato principal.
precisa saber é o seguinte

9

As outras respostas parecem focar em "eu nunca deveria usar JavaScript", então acho que elas estão perdendo o sentido. Você não deve usar JavaScript se não precisar. Algumas pessoas usam JavaScript para tudo :

  • Efeitos de foco (deve ser CSS)
  • AJAX (deveria ter hrefquando razoável)
  • Posicionamento (deve ser CSS)

Os benefícios são coisas como:

  • O site é exibido mais rapidamente
  • CSS é significativamente menos complexo que JavaScript na maioria das vezes
  • Ter hreflinks de backup ajuda os mecanismos de pesquisa, usuários que desejam abrir links em outras guias e usuários que odeiam JavaScript

É claro que o AJAX é muito legal, e também as páginas dinâmicas, por isso não jogue fora essas coisas apenas porque algumas pessoas não precisam delas.

Meu argumento é que aprender como fazer coisas sem JavaScript é bom, minimizar JavaScript é bom e ter um backup para quando JavaScript não funcionar é bom, mas não há razão para evitar recursos porque eles exigem JavaScript.


1
Lembro-me de ter recebido alguns conselhos há muitos anos, sobre (o que na época eram chamados) Interfaces homem-máquina: "Só porque você pode, não significa que deveria". Essa é uma máxima de vários sites com animação chamativa excessiva, som e afins devem ter em conta.
Andrew Andrew

8

É uma boa ideia evitar funcionalidades desnecessárias, ponto final. Estruturas como o jQuery tornam incrivelmente fácil adicionar detalhes que podem fazer sentido, mas às vezes não. Por exemplo:

Você realmente precisa animar isso?

... ou ...

É realmente necessário percorrer todo o DOM para um seletor tão trivial? Você poderia limitá-lo usando o contexto, e precisamos disso em primeiro lugar?

Eu não evitaria o uso do JS, mas cuido para não ser desagradável, procurando máquinas mais lentas. O mesmo se aplica a algumas das coisas novas e sofisticadas que temos no CSS3 - como sombras projetadas ... se usadas excessivamente, podem fazer com que alguém em uma máquina de baixa potência tenha uma experiência muito ruim.

A exceção a isso pode ser a criação de controles de front-end para vários tipos de dispositivos, nos quais eles devem trabalhar absolutamente com o JS desativado (talvez uma política de segurança estrita em uma rede de gerenciamento de data center não exija o JS). Portanto, o exposto acima deve ser tomado em contexto com os requisitos que você tiver.


6

Acredito que, sendo um desenvolvedor web relativamente novo e jovem (cerca de 4 anos), tive que pesquisar muito sobre isso, pois o javascript está em todo lugar.

O que tento fazer nos meus projetos é garantir que o site funcione sem javascript e, em seguida, adicione javascript onde for mais adequado (validação do lado do cliente, aprimoramento da interface do usuário, etc.). É uma espécie de aprimoramento progressivo e cuida de SEO, javascript desativado e incompatibilidades de navegador mais antigas.

Essa mesma pergunta foi feita no SO, mas não posso, pelo amor de mim, lembrar onde.


5

O uso do JavaScript pode ser limitado em vários casos:

  • Validação. Isso deve ser feito no lado do servidor. Às vezes, em aplicativos da Web, há uma validação rápida do lado do cliente, mas sozinha não é suficiente.
  • Tarefas extremamente importantes. Os usuários podem optar por desativar os scripts de seus navegadores, para que o código JS não funcione. Se você quiser ter certeza de que algo funcionará em qualquer caso em qualquer navegador, não confie no JS.
  • Rapidez. O código JS deve ser enviado ao cliente e, quanto mais código você escreve, mais tempo leva. Embora pequenas quantidades de código não tenham efeito prático.

O JS possui muitos recursos, que não podem ser substituídos pelo código do servidor. Além dos mencionados acima, acho que não haveria argumento razoável para limitar o uso de JS.


5

" Sites direcionados a bancos de dados " é a chave para a resposta. Existem duas maneiras de criar sites, e a quantidade de Javascript permitida depende de qual deles você está usando. Você pode construir:

  1. Sites centrados em conteúdo . No primeiro caso, as palavras mágicas são "aprimoramento progressivo"; limite o javascript a funções redundantes que podem ser fornecidas com acessos clássicos ao conteúdo por meio de HTTP simples.

  2. Aplicações web . Para aplicativos, você está usando a Web como plataforma de software. Os aplicativos contam com algumas suposições sobre o software disponível - navegadores modernos, versões mais recentes de bibliotecas javascript populares, acessos à área de trabalho com mouse e / ou tablets com multitoque.

A web como plataforma de software

Os requisitos mínimos de acesso são aceitáveis ​​se você estiver realmente criando um aplicativo - você direciona alguma plataforma específica para obter recursos avançados que não poderiam ser criados de outra forma. É como desenvolver para Python, Java ou .Net. Não deixe que palavras-chave como HTML5 e a promessa de "correr para qualquer lugar" o enganem; você pode ter código portátil entre dispositivos apenas enquanto toda a plataforma for suportada por eles. Qualquer alteração na pilha de desenvolvimento e o software será interrompido.

Portanto, o preço a pagar é que você está seguindo uma meta em movimento, à medida que novas versões da plataforma são lançadas; você precisará atualizar para manter seu aplicativo funcionando à medida que a plataforma evolui. O único benefício que você obtém é um mecanismo de entrega semiuniversal para seu aplicativo que não depende de pacotes nem lojas de aplicativos; mas você perde o principal recurso que diferencia a web dos sistemas de computadores em rede anteriores.

A web como entrega de conteúdo

Sites centrados em conteúdo são um animal diferente; eles estão na tradição da clássica World Wide Web. O conteúdo é vagamente interpretado pelo cliente, o que pode fazer qualquer transformação desejada antes da apresentação. Espera-se que o site seja acessado por um ecossistema de diferentes plataformas que podem ou não suportar os padrões atuais:

  • Dispositivos móveis que suportam menos do que os sinos e assobios mais recentes e mais caros
  • Usuários antigos do navegador que não podem (na empresa) ou não sabem (em casa) como atualizar
  • Versões futuras de mecanismos populares que descontinuam suas APIs antigas

Você perderá todos eles se precisar da atual geração de javascript, que está sempre evoluindo. Nesse contexto, o javascript quebrado que impede o acesso ao conteúdo é um pecado.

Todo mundo dizendo que "o uso de javascript deve ser minimizado" está defendendo esse estilo. Não há problema em incluir algumas JS, lembre-se, mas todas as funções devem ser redundantes com acessos básicos ao conteúdo que podem ser alcançados no lado do servidor:

  • Validação de entrada de dados
  • Atualizações de conteúdo AJAX para uma navegação mais rápida (que, no entanto, funciona sem JS)

O benefício dessa abordagem é menos testes e atualizações necessárias e mais prazo de validade. As primeiras páginas da Web estáticas de 20 anos atrás ainda podem ser navegadas em qualquer cliente da Web, mas os primeiros aplicativos da Web estão quebrados para sempre. Se seu site tiver algum valor de arquivamento, você será beneficiado a longo prazo ao usar a Web como um sistema de entrega de conteúdo, não como uma plataforma de aplicativos.


3

Eu trabalho para o meu governo estadual e, como resultado, a maior parte do meu desenvolvimento envolve sites interativos baseados em dados. Consultas contra dados históricos, envios de formulários, coisas assim. Mantemos nosso Javascript no mínimo absoluto, pelos seguintes motivos:

1) A validação das entradas do formulário sempre deve ocorrer no lado do servidor, nunca no lado do cliente. Se você tentar validar suas entradas no lado do cliente, tudo o que um hacker precisa fazer é criar uma cópia local da sua página da web e reescrever o Javascript para permitir o que ele deseja enviar (injeção de SQL, etc.). Sua validação deve ocorrer em algum lugar sob seu controle exclusivo, ou seja, no servidor.

2) Muitos usuários desativam o Javascript ou usam um navegador que pode não implementá-lo corretamente. Sendo o governo, temos que apoiar a todos, mesmo que estejam usando equipamentos realmente REALMENTE antigos. HTML funciona em qualquer lugar; Javascript, nem tanto. Ao não usar Javascript em suas páginas da Web, você oferece uma área muito pequena na máquina cliente, usando poucos recursos. Isso maximiza o número de pessoas que podem acessar seu conteúdo. Pelo mesmo motivo, você não deve ficar muito maluco com seu CSS. Mantenha-o simples, mantenha-o limpo e permita que as velhinhas vejam seu site, mesmo que o computador tenha sido comprado em 1999 (aliás, recebemos chamadas de suporte técnico de pessoas como essa).

3) Javascript, sendo uma ferramenta preferida por "desenvolvedores da Web", em vez de programadores do lado do servidor, tende a ser bastante feio. E os designers (que costumam ser os desenvolvedores da web, se quiser ser sincero) tendem a não ver o problema ao baixar "scripts" de lugares aleatórios da web. Eles dizem coisas como "por que reinventar a roda?" e "Não inventado aqui". Então, em vez de escrever seu próprio código, eles geralmente saem para pegar algo de outro site, pensando que, se estiver na internet, é um jogo justo. Existem dois problemas com isso: A) eles podem inadvertidamente postar algum Javascript malicioso que leva um tempo para serem capturados e B) eles podem violar os direitos autorais de alguém e processá-lo. Ambas as situações devem ser evitadas.

Em geral, Javascript é uma má ideia. Qualquer código do lado do cliente é uma má ideia. O lado do cliente deve conter apenas linguagem de marcação e CSS; deixe o lado do servidor lidar com o trabalho pesado.


2

Depende.

Embora se possa esperar que os agentes de usuário da área de trabalho ofereçam suporte e executem seu javascript de maneira significativa, nem todos os agentes do usuário são navegadores gráficos da área de trabalho, e você precisa decidir se deseja atendê-los.

Exemplos incluem:

  • mecanismos de pesquisa (o Google executa algum javascript, mas certamente não é tudo, e se você confiar no javascript para navegação, os robôs de pesquisa poderão não encontrar todo o seu conteúdo)
  • agregadores e raspadores
  • navegadores baseados em texto (embora muitas pessoas não os usem)
  • leitores de tela e outros aparelhos de leitura
  • (alguns) navegadores para celular

Minha regra geral é que, se for um aplicativo da Web para usuários regulares (internos, comunidade, esse tipo de coisa), confiar em javascript é bom, mas se você quiser ser acessível e localizável publicamente, pelo menos o essencial a funcionalidade deve funcionar perfeitamente sem javascript e você deve falhar normalmente quando precisar, em vez de exibir um comportamento "indefinido".


2

A abordagem antiquada está totalmente desatualizada. Por exemplo, eu fiz uma exclusão do ajax para o moderador em um dos sites e ele está feliz por causa do aumento óbvio da velocidade.

É claro que o desenvolvedor pode fazer duas versões para usuários JS e não JS, mas na maioria dos casos é extremamente caro e não vale 1-2% da audiência do site (se você não é o Google, é claro).

Portanto, minha resposta seria NÃO - JavaScript é a resposta para muitas perguntas sobre a experiência do usuário. Por que não devo usá-lo?


1

Pela minha experiência, houve um tempo em que as empresas desabilitavam o JavaScript por política. Mas esse tempo está longe. Atualmente, desenvolvo alguns aplicativos de intranet e aplicativos da web para grandes empresas globais. Para todos os aplicativos, o uso de JavaScript e JQuery fazia parte do que o cliente espera.

A criação de aplicativos para clientes não é mais apenas velocidade e segurança. O cliente deseja se concentrar na usabilidade e no uso da tecnologia AJAX. Sem o uso de JavaScript, não funcionaria tão bem. PostBacks o tempo todo para algumas tarefas muito pequenas, como cálculo ou algo parecido, para a maioria das empresas não é uma opção.

Quando pensamos nas situações atuais em empresas maiores, há outro indicador de que o JavaScript é atualmente necessário. Veja os sistemas CMS atualmente em execução nos negócios. A maioria deles usa Microsoft SharePoint ou Adobe CQ, alguns deles Drupal ou qualquer outro e assim por diante. Todo esse sistema depende de JavaScript. Sem javascript, a maioria dos aplicativos não funcionaria, como o usuário espera.


0

Em tempos passados, o JavaScript era usado e abusado, e os scripts eram (percebidos como) cheios de vulnerabilidades e uma fonte de malware.

Muitas redes corporativas responderam desativando o JS, uma política que (correta ou incorretamente) ainda existe em muitas organizações atualmente.

Simplesmente, sugiro que nenhum site conte com o JS para operar


3
Eu acho que essa opção está totalmente desatualizada. A maioria das empresas está usando o SharePoint ou o CQ para soluções de intranet. Ambos os sistemas realmente dependem de JS.
Smokefoot 29/08/12

Eu refuto absolutamente "a maioria das empresas" usa o Sharepoint ... e mesmo para as empresas que permitem JS internamente, as configurações da Intranet podem ser diferentes das externas.
Andrew

0

Como a maioria das respostas aqui explicam, o uso javascriptnão é prejudicial. Se você deseja salvar seu código-fonte e o código-fonte com aparência desarrumada, tentecoffee-script que economizará muito esforço ao digitar javascript.

http://coffeescript.org/

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.