Загрузка ASP.NET в комплекте Javascript асинхронно, а затем вызывает обратный вызов
У меня есть страница, которая при загрузке отправляет AJAX-вызов конечной точке, чтобы получить HTML, и вставляет этот HTML на страницу. Этот HTML содержит <script>
сгенерированные ASP.NET BundleConfig's @Scripts.Render()
метод. Это позволяет нам минимизировать Javascript в QA и производить и отлаживать готовый Javascript в нашей локальной среде разработки
Моя проблема в том, что мне нужно загрузить внешние файлы Javascript на страницу и после загрузки запустить функцию из этого файла. Обычно фрагмент HTML будет выглядеть так:
<script src="/js/file1.js" />
<script src="/js/file2.js" />
<script>
$(function(){
// function included in file2.js
myFunction();
});
</script>
Моя проблема с этим, так как DOM страницы был загружен, myFunction();
в Jquery готовый блок запускается сразу; все время file1.js
а также file2.js
все еще загружаются. Это, очевидно, наталкивается на myFunction is undefined
ошибка.
Есть ли способ использовать пакеты ASP.NET при асинхронной загрузке HTML, который содержит файлы Javascript?
1 ответ
Простое исправление было бы использовать $(window).load()
$(document).ready()
выполняется в последовательности, когда это появляется в коде.
$(window).load()
будет работать после того, как все загрузится, так что вы можете попробовать это вместо того, чтобы пытаться придумать сложный путь - как это должно работать. - просто предложение.
<script src="/js/file1.js" />
<script src="/js/file2.js" />
<script>
$(window).load(function(){
// function included in file2.js
myFunction();
});
</script>