По причинам, не имеющим отношения к вопросу, моему коллеге необходимо загрузить сценарий, который использует шаблон Universal Module Definition. В нашей среде обычно загружен инструмент AMD, но для более неуместных причин моему коллеге нужен сценарий для определения глобального, а не регистрации модуля через AMD. Подход, который в настоящее время проверяется в их отделении что-то вдоль линий этого:Могут ли модули AMD загружать промежуточные строки в сценарии?
<script>
var backupDefine = define;
define = null;
</script>
<script src="../path/to/some/script/using/UMD.js"></script>
<script>
define = backupDefine;
backupDefine = null;
</script>
Мой вопрос: Является ли это ужасная идея? Есть ли гарантия того, как браузеры загружают скрипты из тегов сценариев, которые обеспечат ничего, кроме загрузки сценария на основе UMD, произойдет между неопределением определения и восстановления define? У нас очень большая, очень тяжелая загрузка асинхронных активов, в основном основанная на модулях AMD, поэтому я заинтересован в том, что модуль AMD пытается определить себя в этом прерывистом состоянии, где определение в настоящее время не определено.
Можете ли вы показать нам код UMD.js? Я не понимаю, почему вы не можете использовать UMD вместе с AMD, поскольку UMD - это всего лишь надмножество AMD. – Buzinas
@Buzinas Концерн не связан с UMD и AMD вместе. Это прекрасно работает. Озабоченность заключается в попытке моего коллеги обмануть UMD в обход AMD и определить глобальную. – Dogs
Но зачем ему это нужно? Это мой вопрос. Почему он пытается изменить 'define' на' null' при добавлении файла 'UMD.js', а затем, определяя его? Не может ли 'UMD.JS' жить вместе с' define'? Это не имеет смысла для меня. – Buzinas