Eu não vou ser o advogado do diabo, mas não existe uma relação estrita entre trabalho amador e JavaScript em linha. Vamos ver o código fonte de vários sites mais conhecidos:
- Google,
- Wikipedia,
- Microsoft,
- Adobe,
- Dell,
- IBM.
Todas as suas páginas iniciais usam JavaScript inline. Isso significa que todas essas empresas contratam pessoas amadores para criar suas homepages?
Sou um desses desenvolvedores que não conseguem colocar o código JavaScript dentro do HTML. Eu nunca faço isso dentro dos projetos em que trabalho (exceto provavelmente algumas chamadas como <a href="javascript:...">
para os projetos onde o JavaScript discreto não era um requisito desde o início, e eu sempre removo o JavaScript inline quando refatorio o código de outra pessoa. vale a pena o esforço? Não tenho tanta certeza.
Em termos de desempenho, nem sempre você tem um desempenho melhor ao colocar o JavaScript em um arquivo separado. Geralmente, somos tentados a considerar essa largura de banda de desperdício JavaScript inline, uma vez que ela não pode ser armazenada em cache (exceto quando você lida com HTML com cache estático). Pelo contrário, um arquivo .js externo é carregado apenas uma vez.
Na realidade, essa é apenas outra otimização prematura : você pode estar certo ao pensar que a externalização do JavaScript prenderia o seu site, mas você também pode estar totalmente errado:
- E se a maioria dos seus usuários vier com um cache vazio?
- Você considerou isso com um arquivo .js externo, uma solicitação será feita para esse arquivo a cada solicitação de página, se o site não estiver configurado corretamente (e normalmente, não é),
- O arquivo .js está realmente em cache (com o IIS, pode não ser tão fácil)?
Portanto, antes de otimizar prematuramente, colete estatísticas sobre seus visitantes e avalie os desempenhos com e sem JavaScript in-line.
Depois vem o argumento final: você misturou JavaScript e HTML na sua fonte, então você é um saco. Mas quem disse que você misturou os dois? O código-fonte usado pelo navegador nem sempre é o código-fonte que você escreveu. Por exemplo, o código-fonte pode ser compactado, minimizado ou vários arquivos CSS ou JS podem ser unidos em um arquivo, mas não significa que você realmente nomeou suas variáveis a
, b
, c
... a1
, etc. ou que você escreveu um arquivo CSS enorme sem espaços ou novas linhas. Da mesma forma, você pode facilmente ter um código-fonte JavaScript externo injetado no HTML em tempo de compilação ou mais tarde através dos modelos.
Para concluir, se você misturar JavaScript e HTML no código-fonte que escreve, considere não fazê-lo em seus projetos futuros. Mas isso não significa que, se o código-fonte enviado para o navegador contiver JavaScript embutido, é sempre ruim.
- Pode ser ruim.
- Pode, ao contrário, ser um sinal de que o site foi escrito por profissionais que se preocuparam com o desempenho, fizeram testes específicos e determinaram que seria mais rápido para os clientes integrarem partes do JavaScript.
- Ou pode não significar nada.
Ento, envergonhe a pessoa que diz "site muito legal, vergonha sobre o script in-line no cdigo-fonte" olhando apenas para a fonte enviada ao navegador, sem saber nada sobre como o site foi feito.