В зависимости от того, на какие браузеры вы ориентируетесь, вы можете или не можете использовать ключевое слово async
.
Решение, которое я лично использую в производстве, состоит в том, чтобы переместить все теги сценария в конец элемента <body>
и упорядочить их в порядке зависимости.
Таким образом, вы перемещаете скрипт из CDN в конец тега <body>
,
и вы поставили скрипт с init()
методом после it.
Пример:
У меня есть два сценария. script1
зависит от script2
, поэтому его необходимо загрузить после него.
Вот что я бы сделал:
<!doctype html>
<html>
<head></head>
<body>
Some HTML here...
<script src="script2.js"></script>
<script src="script1.js></script>
</body>
</html>
В качестве альтернативы вы можете вручную загружать сценарии в любом порядке, используя AJAX, но это будет излишне сложно.