Загрузка 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>
Другие вопросы по тегам