Não serei o advogado do diabo, mas não existe uma relação estrita entre trabalho amador e JavaScript embutido. Vamos ver o código fonte de vários sites mais conhecidos:
- Google,
- Wikipedia,
- Microsoft,
- Adobe,
- Dell,
- IBM.
Todas as suas home pages usam JavaScript embutido. Isso significa que todas essas empresas contratam pessoas amadoras para criar suas páginas iniciais?
Eu sou um daqueles desenvolvedores que não podem colocar o código JavaScript dentro do HTML. Eu nunca faço isso nos projetos em que trabalho (exceto provavelmente algumas chamadas, como <a href="javascript:...">
nos projetos em que o JavaScript discreto não era um requisito desde o início, e sempre removo o JavaScript embutido quando refato o código de outra pessoa. Mas vale a pena o esforço ? Não tão certo.
Em termos de desempenho, nem sempre você tem melhores desempenhos ao colocar o JavaScript em um arquivo separado. Geralmente, somos tentados a considerar essa largura de banda de resíduos de JavaScript embutida, pois ela não pode ser armazenada em cache (exceto quando você lida com HTML estático em cache). 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 externalizar o JavaScript fixaria seu site, mas também pode estar totalmente errado:
- E se a maioria dos seus usuários vier com um cache vazio?
- Você considerou que, 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 geralmente não está),
- O arquivo .js é realmente armazenado em cache (no 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 embutido.
Em seguida, vem o argumento final: você misturou JavaScript e HTML em sua fonte e, por isso, é péssimo. 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 comprimido, minified, ou vários arquivos CSS ou JS podem ser unidas em um único arquivo, mas isso não significa que você realmente nomeou seu 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 o código-fonte JavaScript externo injetado no HTML no momento da compilação ou posteriormente através dos modelos.
Para concluir, se você misturar JavaScript e HTML no código-fonte que você escreve, considere não fazê-lo em seus projetos futuros. Mas isso não significa que, se o código-fonte enviado ao navegador contiver JavaScript embutido, é sempre ruim.
- Pode ser ruim.
- Pelo contrário, pode ser um sinal de que o site foi escrito por profissionais que se preocupavam com o desempenho, fizeram testes específicos e determinaram que seria mais rápido para seus clientes incorporar partes do JavaScript em linha.
- Ou pode não significar nada.
então, que vergonha para a pessoa que diz "site muito legal, que vergonha com os scripts embutidos no código-fonte", olhando apenas a fonte enviada ao navegador, sem saber nada sobre como o site foi criado.