Как совместить MVC-связывание и асинхронную загрузку JS-файлов

У меня есть страница MVC, которая имеет ряд зависимостей JavaScript, давайте назовем их зависимыми-A и зависимыми-B, где зависимые-B зависят от зависимых-A. Оба они включены в различные пакеты в MVC, который включен на страницу. После запуска этого инструмента Google PageSeded Speed ​​он предложил, чтобы мы включили JS асинхронно, чтобы предотвратить блокировку рендера.

Из-за зависимостей их нужно загружать в определенном порядке, поэтому я рассмотрел использование LABJS для их асинхронной загрузки в правильном порядке, чтобы предотвратить блокировку рендеринга.

Это работает путем включения URL-адреса комплекта, но я теряю возможность иметь локальные отладочные версии файлов JS при разработке.

Кто-нибудь может предложить способ обойти это, чтобы мы могли загружать файлы JS асинхронно, но для того, чтобы поддерживать и поддерживать версии отладки локально?

Вот что я сейчас использую.

<script src="~/Scripts/LAB.min.js"></script>
<script>
    $LAB
    .script("@Scripts.Url("~/bundles/jquery")").wait()
    .script("/scripts/fileone.js").wait()
    .script("/scripts/filetwo.js").wait(function() {
        FunctionInFileTwo();
    });
</script>

Исходный код страницы с приведенным выше кодом выглядит следующим образом.

<script src="/Scripts/LAB.min.js"></script>
<script>
    $LAB
    .script("/bundles/jquery?v=GnU3whLS74nHNYUsUJjcWJKdXvKBNbFqBrkQVKSNlKc1").wait()
    .script("/scripts/scripts/fileone.js").wait()
    .script("/scripts/scripts/filetwo.js").wait(function() {
        FunctionInFileTwo();
    });
</script>

1 ответ

Не похоже, что для этого есть чистый API.

Scripts.Render("~/bundles/yourbundle") возвращает IHtmlString из необходимых тегов скрипта - вы можете создать метод, который очищает скрипт от этой строки и генерирует правильный $LAB вызовы.

Scripts.Manager.RenderExplicit(tagFormat, paths) Подходит ближе, где вы просто передали бы строку лучшего формата в качестве первого аргумента, но читая код, выглядело так, как будто он мог бы начать включать в середине списка буквально отформатированные теги сценария.

Другие вопросы по тегам