Как использовать асинхронный (неблокирующий) 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" />