【问题标题】:Async loading of javascript files using MVC4 Bundling and HTML5 async attribute使用 MVC4 捆绑和 HTML5 异步属性异步加载 javascript 文件
【发布时间】:2012-11-24 11:41:33
【问题描述】:

HTML5 有一个用于脚本文件的 async 属性,以启用异步加载。

<script type="text/javascript" src="myScript.js" async></script>

我可以通过像这样引用捆绑包来利用我的 MVC4 捆绑包。

<script type="text/javascript" src='@Scripts.Url("~/bundles/jquery")' async></script>

但这确实意味着我的脚本即使在调试模式下也是捆绑在一起的。

那么我如何在调试时利用捆绑和异步属性而不丢失非缩小性。

【问题讨论】:

    标签: html asp.net-mvc-4 asp.net-optimization bundling-and-minification


    【解决方案1】:

    如果您升级到 1.1-alpha1 版本,您可以通过以下方式将 async 属性添加到标签格式中:

    Scripts.DefaultTagFormat = @"<script src=""{0}"" async></script>"
    

    或者将它传递到你想要异步标签的地方

    使用以下而不是 Scripts.Render("~/bundles/jquery")

    Scripts.RenderFormat(@"<script src=""{0}"" async></script>", "~/bundles/jquery")
    

    【讨论】:

    • System.Web.Optimization 4.0 似乎同时删除了 DefaultTagFormat 和 RenderFormat,不允许自定义脚本标签输出(直接使用 AssetManager.RenderScriptTag)。
    • @E-Null 当前版本现在支持以上两种方法,如果你只做PM&gt; Install-Package Microsoft.AspNet.Web.Optimization
    • 我需要在哪里写这些行?(其中之一..)什么需要升级到 1.1 -alpha? MVC 版本还是 Web 优化?谢谢...
    • 这打破了使用CdnFallbackExpression 的 CDN 回退。回退检查将在延迟脚本加载之前执行,导致回退总是启动。
    • 我没有看到“我需要在哪里写这些行?”这个问题的答案。具体来说,我们需要将 Scripts.DefaultTagFormat = line 放在哪里?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多