Я искал похожие ответы и собирался опубликовать вопрос, когда нашел этот вопрос stackoverflow - и ваш.
Итак, вот что я узнал:
- Сценарий
defer
приближается намекает на браузер, чтобы дождаться окончания загрузки документа перед выполнением сценария. НО он все равно сначала загружает скрипт (при условии, что он находится в заголовке документа).
- В jQuery есть метод
.getScript()
, который можно использовать для загрузки любого количества скриптов в любое время и в любом месте. Например, вы можете применить его к событию onClick
по ссылке!
- Существует также несколько библиотек, предназначенных для динамической неблокирующей загрузки, таких как LABjs , RequireJS или HEADjs .
Полагаю, вам решать, какой подход вы выберете, если вы работаете над небольшим проектом и уже используете и / или привыкли к использованию jQuery, тогда я бы согласился. В противном случае, возможно, проверьте одну из библиотек.
Просто еще раз заявим, что, насколько я могу сказать, DEFER
не предотвратит блокировку страницы при загрузке скриптов. Но типичное и очень простое решение - включить все ваши скрипты в нижний колонтитул страницы, а не в ГОЛОВУ.
Люди, пожалуйста, не стесняйтесь поправлять меня, если я ошибаюсь в любом из вышеперечисленных! - Спасибо