Как использовать асинхронный (неблокирующий) JavaScript с DNN Client Resource Management

Я использую Управление клиентскими ресурсами DNN для загрузки javascript и css в тему (обложку), таким образом, я могу использовать преимущества минимизации и составных файлов, но мне нужно, чтобы они были асинхронными (неблокирующими). Как это может быть сделано?

1 ответ

Решение

Насколько я знаю, нет способа использовать async (или же defer) атрибут на <script> тег, который отображается платформой управления ресурсами клиента. Вы можете добавить атрибут к <script> (или же <link>) тег, представленный платформой управления ресурсами клиента. Добавьте атрибут HtmlAttributesAsString к элементу управления, а затем разделите имя и значение атрибута двоеточием, например HtmlAttributesAsString="async:true", Следует отметить, что существует ошибка, из-за которой несколько атрибутов, которые должны быть разрешены через запятую, не отображаются правильно (следите за этим запросом извлечения, который исправит это, а затем нужно будет интегрировать в DNN).

Вы также можете написать свой скрипт так, чтобы он настраивал обработчик событий для выполнения действия после загрузки страницы (например, оберните ваш код в jQuery(function ($) { … });)

Вы также можете использовать ForceProvider собственность на DnnJsInclude установить скрипт для загрузки в нижней части </form> элемент, а не к вершине <body> (по умолчанию для скриптов). Итак, это может выглядеть так:

<dnn:DnnJsInclude runat="server" 
                  PathNameAlias="SkinPath"
                  FilePath="js/theme.min.js" 
                  ForceProvider="DnnFormBottomProvider" 
                  Priority="10000" />
Другие вопросы по тегам