2010-07-20 11 views
1

Beaucoup de temps, dans un partiel, le HTML (ou ERB ou HAML) ainsi que le Javascript est dans un fichier, donc quand le fichier principal comprend ces partiels, le HTML sera mélangé avec du code Javascript. Cependant, il est dit que pour l'affichage rapide du contenu de la page, tout le code Javascropt doit être placé à la fin du fichier .HTML. Dans ce cas, existe-t-il un moyen approprié ou standard pour y arriver? Peut-être en utilisant 1 partie en HTML, et 1 partielle Javascript, et inclure 2 différents partials (le HTML comme au bon endroit, et le Javascript près de la fin du fichier?)Dans Ruby on Rails, comment faire du HTML en tant que partiels dans un fichier et Javascript dans un autre fichier pour être inclus en dernier?

(Ceci est lié à If Javascript code block is not at end of HTML file, but is using jQuery's $(document).ready(function() {...}), will it slow down the page display?)

Répondre

2

Dans votre fichier de mise en page, vous pouvez mettre un pied de page dans lequel vous pouvez charger votre javascript (généralement des éléments comme des analyses qui n'ont pas besoin d'être chargées au début). Puis définissez un content_for dans vos vues, ce qui inclut votre Javascript partiel. Le résultat est que Javascript sera placé à la fin de la page.

Dans la mise en page:

<div id="footer"> 
    <%= yield :footer %> 
</div> 

Dans vos vues/paritals:

<% content_for :footer %> 
    <script type="text/javascript"> 
    // Some Javascript 
    </script> 
<% end %> 

ou

<% content_for :footer %> 
    <%= render :partial => "path_to_some_javascript" %> 
<% end %>