Было бы намного проще иметь возможность объявлять зависимость в начале каждого файла javascript, и упаковщик и загрузчики должны были бы с умом использовать эту информацию для объединения / загрузки скриптов.
У меня была такая же идея несколько месяцев назад, и я работаю над решателем зависимостей для моего Resource Builder , который уже облегчает мне задачу (включая необходимость различать разработку и развернутую версию, снеобязательный параметр debug
).
JsDoc Toolkit (и связанные с этим усилия), синтаксис которого поддерживается, например, Eclipse JSDT , обеспечивает @requires
тег, чтобы вы могли использовать это.Но разрешение зависимостей все еще не тривиальная задача (как вы можете видеть в ResourceBuilder::resolveDeps()
).(Конечная цель - использовать статический анализ кода для автоматического разрешения зависимостей без каких-либо тегов.)
Это уменьшит текущий
<script type="text/javascript" src="builder?src=object,types,dom,dom/css"></script>
до простого
<script type="text/javascript" src="builder?src=dom/css"></script>
Что касается асинхронных загрузчиков: то, что хорошо в асинхронных загрузчиках, это то, что они быстрые.Плохая вещь об асинхронных загрузчиках заключается в том, что - если они работают;все они основаны на нестандартном подходе - они настолько быстры, что вы не можете быть уверены, что функции, предоставляемые сценариями, доступны в следующих сценариях.Таким образом, ваш код должен выполняться их слушателями.Я рекомендую избегать их, если у вас в приложении нет функций, которые нужны только по требованию.