No voy a ser el defensor del diablo, pero no existe una relación estricta entre el trabajo de aficionados y JavaScript en línea. Veamos el código fuente de varios sitios web más conocidos:
- Google
- Wikipedia
- Microsoft
- Adobe,
- Dell
- IBM
Cada una de sus páginas de inicio usa JavaScript en línea. ¿Significa que todas esas compañías contratan gente aficionada para crear sus páginas de inicio?
Soy uno de esos desarrolladores que no pueden poner código JavaScript dentro de HTML. Nunca lo hago dentro de los proyectos en los que trabajo (excepto, probablemente, algunas llamadas como <a href="javascript:...">
para los proyectos donde JavaScript discreto no era un requisito desde el principio, y siempre elimino JavaScript en línea cuando refactorizo el código de otra persona. Pero vale la pena el esfuerzo ? No tan seguro.
En cuanto al rendimiento, no siempre tiene mejores rendimientos al colocar JavaScript en un archivo separado. Por lo general, estamos tentados a considerar ese ancho de banda de desperdicio de JavaScript en línea, ya que no se puede almacenar en caché (excepto cuando se trata de HTML estático almacenable en caché). Por el contrario, un archivo .js externo se carga solo una vez.
En realidad, esta es solo otra optimización prematura : puede estar en lo cierto al pensar que externalizar JavaScript sujetará su sitio web, pero también puede estar totalmente equivocado:
- ¿Qué pasa si la mayoría de sus usuarios vienen con un caché vacío?
- ¿Consideró que con un archivo .js externo, se realizará una solicitud a este archivo en cada solicitud de página, si el sitio web no está configurado correctamente (y, por lo general, no lo está),
- ¿El archivo .js está realmente en caché (con IIS, puede que no sea tan fácil)?
Entonces, antes de optimizar prematuramente, recopile estadísticas sobre sus visitantes y evalúe el rendimiento con y sin JavaScript en línea.
Luego viene el argumento final: mezcló JavaScript y HTML en su fuente, por lo que apesta. ¿Pero quién dijo que mezclabas ambos? El código fuente utilizado por el navegador no siempre es el código fuente que escribió. Por ejemplo, el código fuente puede ser comprimido, minified o varios archivos CSS o JS se puede unir en un solo archivo, pero esto no quiere decir que realmente asignado el nombre de variables a
, b
, c
... a1
, etc., o que anotó una gran archivo CSS sin espacios ni líneas nuevas. De la misma manera, puede inyectar fácilmente código fuente externo de JavaScript en HTML en el momento de la compilación o más tarde a través de las plantillas.
Para concluir, si combina JavaScript y HTML en el código fuente que escribe, debería considerar no hacerlo en sus proyectos futuros. Pero eso no significa que si el código fuente enviado al navegador contiene JavaScript en línea, siempre es malo.
- Puede ser malo
- Por el contrario, puede ser una señal de que el sitio web fue escrito por profesionales que se preocuparon por el rendimiento, realizaron pruebas específicas y determinaron que sería más rápido para sus clientes incorporar partes de JavaScript.
- O puede que no signifique nada en absoluto.
así que más bien avergonzar a la persona que dice "sitio muy bueno, lástima de las secuencias de comandos en línea en el código fuente" mirando solo la fuente enviada al navegador, sin saber nada acerca de cómo se hizo el sitio web.