2014-12-08 3 views
3

Я пытаюсь загрузить мой JavaScript (Angular app) для асинхронной загрузки, чтобы страница могла отображать загрузочный образ, когда браузер загружает JavaScript позже. В производстве это работает отлично, но не в разработке, потому что Sprockets еще не объединил все файлы.Async JavaScript только в рабочей среде?

Я использую следующие в моем Haml файле:

= javascript_include_tag "mio", :async => true 

который работает по назначению в производстве:

<script async="async" src="/assets/mio.js"></script> 

Однако в развитии файлы все по отдельности, и выполнить из порядка. Например, мой Угловая Цитата Форма контроллер выполняется перед тем угловым по окончанию загрузки:

<script async="async" src="/assets/angular.js?body=1"></script> 
<script async="async" src="/assets/mio.js?body=1"></script> 
<script async="async" src="/assets/mio-ng/controllers/quote_form.js?body=1"></script> 

Таким образом, вопрос, может javascript_include_tag игнорировать async флаг, когда в процессе развития, но не в производстве?

ответ

5

я нашел способ установки этого на работу, но я чувствую, что это не самое лучшее решение:

= javascript_include_tag "application", :async => Rails.env == "production" 
+0

Это не так уж плохо, я предполагаю! – Robin

+4

'Rails.env.production?' Более идиоматично – collimarco

Смежные вопросы