【发布时间】:2017-04-06 15:02:33
【问题描述】:
我使用 DNN 的客户端资源管理将 javascript 和 css 加载到主题(皮肤)中,这样我可以利用缩小和复合文件,但我需要它们是异步的(非阻塞)。如何做到这一点?
【问题讨论】:
标签: javascript asynchronous themes dotnetnuke skin
我使用 DNN 的客户端资源管理将 javascript 和 css 加载到主题(皮肤)中,这样我可以利用缩小和复合文件,但我需要它们是异步的(非阻塞)。如何做到这一点?
【问题讨论】:
标签: javascript asynchronous themes dotnetnuke skin
据我所知,没有办法在客户端资源管理框架呈现的
您可以向客户端资源管理框架呈现的<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" />
【讨论】: