В Ruby on Rails, как сделать так, чтобы HTML как частичный в одном файле и Javascript в другом файле включался последним?

Часто в партиалах HTML (или ERB, HAML), а также Javascript находятся в одном файле, поэтому, когда основной файл включает эти партиалы, HTML будет перемешан с кодом Javascript.

Однако сказано, что для быстрого отображения содержимого страницы весь код Javascropt следует размещать в конце HTML-файла. В этом случае есть ли правильный или стандартный способ сделать это? Возможно, используя 1 партиал как HTML и 1 партиал как Javascript, и включить 2 разных партиала (HTML как правильное место и Javascript ближе к концу файла?)

(Это связано с Если блок кода Javascript находится не в конце HTML-файла, а использует jQuery $(document).ready(function() {...}), замедлит ли это отображение страницы? )


person nonopolarity    schedule 20.07.2010    source источник


Ответы (1)


В вашем файле макета вы можете поместить нижний колонтитул, в который вы можете загрузить свой Javascript (обычно такие вещи, как аналитика, которые не нужно загружать заранее). Затем определите content_for в своих представлениях, которые включают в себя частичный Javascript. В результате этот Javascript будет помещен в конец страницы.

В макете:

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

В ваших представлениях/параллелях:

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

or

<% content_for :footer %>
  <%= render :partial => "path_to_some_javascript" %>
<% end %>
person bjg    schedule 20.07.2010