Estoy acostumbrado a pegar mi JS en la parte inferior del cuerpo (según HTML5Boilerplate), pero desde TurboLinks, que será on by default en Rails 4, vuelve a cargar el cuerpo (y el título) en cada solicitud, ¿tendría sentido? poner mi JS en la cabeza a partir de ahora? ¿Hay alguna guía decente o mejores prácticas sobre esto todavía?Rails 4 + Turbolinks: JS en la cabeza o en la parte inferior del cuerpo?
Respuesta
También precompilada application.js (según la canalización de activos) está activa y automáticamente por defecto. El razonamiento es que incluso si el js se carga antes que el resto de la página, como el js siempre es el mismo, se cargará desde el caché desde la segunda solicitud en adelante, por lo que no hay razón real para publicarlo en la parte inferior del cuerpo más.
Si está utilizando Turbolinks 5, ahora puede colocar turbolinks en la parte inferior de su cuerpo (y seguir las mejores prácticas de desarrollo web para renderizar una página). Esto también ayuda con el SEO muy ligeramente. Basta con añadir las secuencias de comandos en la parte inferior de su cuerpo y añadir
data-turbolinks-eval="false"
a su etiqueta de script. Esto evitará que turbolinks evalúe después de la carga de la página inicial. Así es como se hace con la javascript_include_tag
:
<%= javascript_include_tag 'application', 'data-turbolinks-eval' => 'false'%>
Entonces sólo tiene que utilizar
$(document).on('turbolinks:load', function() { // code to be executed when use changes pages });
- 1. Javascript - cabeza, cuerpo o jQuery?
- 2. Ventajas de cargar JS en la parte inferior en oposición a la parte superior del documento
- 3. JavaScript externo - cuerpo o cabeza?
- 4. Ponga Scripts en la parte inferior
- 5. Hacer que un pie de página CSS se siente en la parte inferior de la ventana del navegador o en la parte inferior del contenido
- 6. pestañas en la parte inferior de TabControl
- 7. Alineación del botón Android a la parte inferior en RelativeLayout?
- 8. panel autoscroll en la parte inferior
- 9. jQuery: ¿Por qué utilizar document.ready si JS externo en la parte inferior de la página?
- 10. Android: pestañas en la parte INFERIOR
- 11. La etiqueta H1 todavía tiene un relleno o margen en la parte inferior, aunque ninguno configuró
- 12. jquery - detectar si la parte inferior de la div está tocando la parte inferior de la ventana del navegador?
- 13. Cómo alinear div en la parte inferior de la página, no en la parte inferior de la pantalla
- 14. Relleno la parte superior y la parte inferior del elemento en línea
- 15. Alinear div en la parte inferior de la div principal
- 16. JavaScript no intrusivo: <script> en la parte superior o inferior del código HTML?
- 17. leyenda ggplot2 en la parte inferior y horizontal
- 18. Copia de seguridad de archivo en la parte inferior 4 GB completo
- 19. Posición en la parte inferior derecha de la pantalla
- 20. JavaScript en la parte inferior/superior de la página web?
- 21. JavaScript en la parte inferior de la página?
- 22. Cómo pegar texto en la parte inferior de la página?
- 23. Etiquetas verticales de xtick en la parte superior, no en la parte inferior
- 24. Magento Ajax - ¿Cómo obtener solo la parte del cuerpo?
- 25. disco a la izquierda del elemento de la lista se muestra en la parte inferior
- 26. Alinear contenidos de div en la parte inferior
- 27. CSS: fijo en la parte inferior y centrado
- 28. Cómo colocar el diseño relativo en la parte inferior de la pantalla (o diseño lineal).
- 29. ¿Cómo colocar div en la parte inferior de otro div?
- 30. Poner una barra en la parte inferior de una página
gracias, eso es suficiente para mí :) – stephenmurdoch
almacena en caché el archivo, pero todavía tienen que esperar para que cargue js (si se carga toda la página), ¿no? ¿No sería un atributo 'async' proporcionar los beneficios de agregar al fondo sin ser recargado por Turbolinks? – michelpm
Con los recursos basados en piñones de rieles normales, tendrá un js comprimido y minificado que generalmente se almacena en el caché del navegador. El tiempo de carga (como en "cargar el código") es de todos modos una fracción de la descarga total + espera + tiempo de carga para js. En cualquier caso, TL simplemente carga toda la página en segundo plano, luego toma los elementos (título, cuerpo, etc.) y los intercambia en su página en lugar de los actuales. Es un comportamiento simple, que puede o no dar como resultado una mayor velocidad. En ejemplos del mundo real, descubrí que los piñones compilaban javascript en head más que suficiente. – rewritten