Logo de La Coctelera

N3uro5i5

Blog Personal de Miguel Ángel Martínez Triviño

8 Marzo 2008

Orden importación javascript_include_tag

En el último proyecto en el que he estado involucrado, me he percatado de una cosa curiosa, necesitaba que una función contenida en archivo javascript llamado map.js llamará a una función contenida en application.js.

Para ello pensé en cargar los javascript en el orden adecuado pensando que el orden de la impresión del helper en el html, sería el indicado por mi en los parámetros

<%= javascript_include_tag :defaults, "map"%>

Obteniendo este resultado:

 <script src="/javascripts/prototype.js" type="text/javascript"></script>
 <script src="/javascripts/effects.js" type="text/javascript"></script>
 <script src="/javascripts/dragdrop.js" type="text/javascript"></script>
 <script src="/javascripts/controls.js" type="text/javascript"></script>
 <script src="/javascripts/map.js" type="text/javascript"></script>
 <script src="/javascripts/application.js" type="text/javascript"></script>

Como podemos ver, parece que este helper hace que el application.js sea el último en cargarse, lo cual puede tener su lógica, pero no deja de ser una curiosidad.

Tags: javascript, rails

servido por n3uro5i5 1 comentario compártelo favorito

1 comentario · Escribe aquí tu comentario

Xavier Noria

Xavier Noria dijo

Hey! He mirado el código de expand_javascript_sources(sources) en asset_tag_helper.rb y creo que se trata de un despiste.

Verás que ese método tiene un case con una rama por la que se entra si existe :defaults. Si es el caso expande @@javascript_default_sources en sources y borra :defaults. Luego, si existe "application.js" hace un append en sources.

Parece que la intención es añadir application.js sólo si existe, eso bien, pero tal como está escrito creo que asume (sin motivo que se me pueda ocurrir) que :defaults es el último elemento en sources. Yo diría que es un bug.

10 Marzo 2008 | 10:50 AM

Escribe tu comentario





Sobre mí

Mozilla Firefox

Buscar

suscríbete

Selecciona el agregador que utilices para suscribirte a este blog (también puedes obtener la URL de los feeds):

¿Qué es esto?

Crea tu blog gratis en La Coctelera