La primera razón es que debe aplicar las mejores prácticas, a menos que tenga una muy buena razón para no hacerlo. Usar JavaScript para consultas receptivas es una mala práctica . CSS es para diseño y estilo de documentos. JavaScript es para manejar eventos y comportamiento.
Cada vez que usa JavaScript para influir en el estilo, programa un controlador de eventos para establecer una clase CSS. Poner estilo en sus scripts genera problemas de mantenimiento. En general, no hay una razón persuasiva por la que desee codificar un controlador de eventos para manejar eventos de tamaño de ventana gráfica, cuando el navegador ya tiene un mecanismo muy eficiente.
La segunda razón es el orden de carga de la página y el evento listo para DOM. Los navegadores no están optimizados para su escenario.
- ¿Quién tiene un mejor crecimiento en la carrera en el sector de TI, desarrolladores o probadores?
- ¿Puedo crear un sitio web usando solo Java?
- ¿Cuáles son los diferentes controles de .NET AJAX?
- Cómo hacer que el sitio web PHP sea seguro y robusto
- Yo, un desarrollador junior, voy a aprender Elixir después de Node.js y Ruby. ¿No es algo bueno o voy a obtener valor desde una perspectiva de contratación?
Cuando un navegador carga su página, primero se carga HTML. La página no se pinta hasta que se hayan cargado y analizado todos los CSS y JavaScript en . CSS y JS bloquean la carga de la página. Por esta razón, es una buena práctica incluir sus recursos de JavaScript en el pie de página de una página, o cargarlos de forma asincrónica. A veces, ambos, según la funcionalidad que proporciona JS. CSS no se carga de forma asíncrona, ya que es esencial para el diseño y el estilo del documento.
Supongamos que colocaría solo las funciones de JavaScript de consulta de medios en la sección de encabezado. Tendría que esperar el evento listo para DOM antes de que pueda averiguar algo sobre las dimensiones de la ventana gráfica. En otras palabras, tendría que esperar hasta que todo HTML, CSS y JS se cargue y analice. CSS mediaqeries tienen la ventaja aquí. Después de cargar CSS, su navegador lo analizará y decidirá qué reglas aplicar.
Para estar seguro, nunca he probado cuán grande es la diferencia en realidad. Pero sería una tontería ignorar eso, ya que optimizar la carga de la página a menudo es un proceso de tomar pequeños aumentos y unirlos.