【问题标题】:How to use asynchronous (non-blocking) javascript with DNN Client Resource Management如何在 DNN 客户端资源管理中使用异步(非阻塞)javascript
【发布时间】:2017-04-06 15:02:33
【问题描述】:

我使用 DNN 的客户端资源管理将 javascript 和 css 加载到主题(皮肤)中,这样我可以利用缩小和复合文件,但我需要它们是异步的(非阻塞)。如何做到这一点?

【问题讨论】:

    标签: javascript asynchronous themes dotnetnuke skin


    【解决方案1】:

    据我所知,没有办法在客户端资源管理框架呈现的<script> 标记上使用async(或defer)属性。可以向客户端资源管理框架呈现的<script>(或<link>)标签添加一个属性。将属性HtmlAttributesAsString添加到控件中,然后用冒号分隔属性名称和值,例如HtmlAttributesAsString="async:true"。需要注意的一点是,存在一个错误,即本应通过逗号允许的多个属性未正确呈现(请关注this pull request,它将解决该问题,然后需要集成到 DNN 中)。

    您还可以编写脚本,以便它设置事件处理程序以在页面加载后执行操作(例如,将您的代码包装在 jQuery(function ($) { … }); 中)

    您还可以使用DnnJsInclude 控件上的ForceProvider 属性将脚本设置为在</form> 元素的底部加载,而不是在<body> 的顶部加载(脚本的默认设置) .所以,这可能看起来像这样:

    <dnn:DnnJsInclude runat="server" 
                      PathNameAlias="SkinPath"
                      FilePath="js/theme.min.js" 
                      ForceProvider="DnnFormBottomProvider" 
                      Priority="10000" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-25
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-07
      相关资源
      最近更新 更多