tag - Archivo JavaScript por vista en Rails
load js rails (5)
De acuerdo con las recomendaciones "discretas de JavaScript", quiero separar mi lógica de JavaScript en
archivos separados Sin embargo, no sé cómo organizarlos.
Debería:
- ¿Simplemente arrojar toda la aplicación javascript en el archivo Application.js y cargarlo con la página de diseño? Este es un enfoque simple, pero terminaré con un hinchado Application.js. Es posible que algunos usuarios deseen visitar solo un par de páginas, pero este archivo completo se precargará, lo que no es bueno.
- ¿O debería crear un archivo javaScript separado para cada vista y cargarlos de forma independiente? Esto crea un conjunto de preguntas. ¿Cómo vincular cada archivo js a la vista correspondiente?
Gracias.
¡Esto cambia con Rails 3.1 y la cartera de activos!
Los archivos separados son los mejores como usted indica. Los problemas sobre cómo hacer referencia a todos ellos y vincularlos desaparecen con rails 3.1, que pretende compilarlos todos en archivos únicos para producción.
Cargue el JavaScript principal en application.js todo el tiempo. Ahora crea archivos para diferentes necesidades. Cree un archivo form.js, un archivo myfancypart.js, etc. No los cargue en el diseño application.html.erb. Cargúelos dinámicamente cuando los necesite:
application.html.erb:
<%= javascript_include_tag "application" %>
<%= yield :javascript_includes %>
arriba de su view.html.erb:
<% content_for :javascript_includes do %>
<%= javascript_include_tag "forms.js" %>
<% end %>
Todo en el bloque content_for se cargará en yield: javascript_includes.
Sugiero poner todo en un archivo, que luego puede minify y gzip. El cliente solo tendrá que descargarlo una vez, ya que se almacenará en caché en todas las solicitudes posteriores.
Otra cosa que podría interesarle son los piñones, un administrador de dependencias de JavaScript, que puede instalar usando gemas. Puede obtener más información sobre piñones desde el sitio web ( http://getsprockets.org/ ) o desde la página github ( http://wiki.github.com/sstephenson/sprockets ). Hace que escribir grandes aplicaciones de JavaScript sea mucho más manejable.
Uno puede usar Jammit para incluir archivos css y javascripts
para más detalles: http://documentcloud.github.com/jammit/
Utilizar:
paso 1:
Agregue js-files en assets.yml (vea el código a continuación)
javascripts:
footer:
- app/javascripts/lib/*.js
- app/javascripts/jquery-plugins/*.js
- app/javascripts/custom/*.js
- app/javascripts/application.js
encabezamiento:
- app/javascripts/core/*.js
- app/javascripts/head/*.js
paso 2:
Agregue código simple en el diseño de la aplicación:
<%= include_javascripts :header %>
<%= include_javascripts :footer %>
tal vez quieras usar application_helper
def javascript(*files)
content_for(:head) { javascript_include_tag(*files) }
end
def stylesheet(*files)
content_for(:head) { stylesheet_link_tag(*files) }
end