A mi entender, todo tu JavaScript se fusiona en 1 archivo. Rails hace esto por defecto cuando se agrega //= require_tree .
a la parte inferior de suapplication.js
archivo de manifiesto.
Esto suena como un verdadero salvavidas, pero estoy un poco preocupado por el código JavaScript específico de la página. ¿Este código se ejecuta en cada página? Lo último que quiero es que todos mis objetos sean instanciados para cada página cuando solo se necesitan en 1 página.
Además, ¿no hay potencial para el código que también choca?
¿O pones un pequeño script
etiqueta en la parte inferior de la página que solo llama a un método que ejecuta el código de JavaScript para la página?
¿Ya no necesitas require.js entonces?
Gracias
EDITAR : aprecio todas las respuestas ... y no creo que realmente estén captando el problema. Algunos de ellos son sobre el estilo y no parecen relacionarse ... y otros solo mencionanjavascript_include_tag
... lo que sé que existe (obviamente ...) pero parece que el camino de Rails 3.1 en adelante es concluir todo su JavaScript en 1 archivo en lugar de cargar JavaScript individual en la parte inferior de cada página.
La mejor solución que se me ocurre es envolver ciertas características en div
etiquetas con id
s o class
es. En el código JavaScript, solo verifica si el id
o class
está en la página, y si lo está, ejecuta el código JavaScript que está asociado con él. De esta manera, si el elemento dinámico no está en la página, el código JavaScript no se ejecuta, aunque se haya incluido en el application.js
archivo masivo empaquetado por Sprockets.
Mi solución anterior tiene la ventaja de que si se incluye un cuadro de búsqueda en 8 de las 100 páginas, se ejecutará solo en esas 8 páginas. Tampoco tendrá que incluir el mismo código en 8 de las páginas del sitio. De hecho, nunca más tendrá que incluir etiquetas de script manual en su sitio en ningún otro lugar.
Creo que esta es la respuesta real a mi pregunta.
application.js
), y de hecho la referencia que proporcionó señala por qué esto es así: la descarga es la parte más lenta del proceso de ejecución de JS. Muchos archivos pequeños son más almacenables en caché que uno grande. La gente de Unholy Rails no parece darse cuenta, entonces, de que sus recomendaciones son inconsistentes con los principios a los que intentan adherirse y, por lo tanto, sus recomendaciones no deben tomarse en serio.