kyl*_*leb 24 javascript asp.net asp.net-mvc performance asp.net-mvc-4
我查看了Google和Stackoverflow,但没有找到答案.是否有任何内置的方法使捆绑执行为deffered或有人知道有人写的扩展帮助方法这样做?
小智 43
尝试在Codeplex站点上或通过Nuget Package将Web Optimization升级到1.1.0版
在1.1.0版中,它们包含元素模板字符串.因此,如果您希望脚本标记包含defer属性,则可以轻松执行此操作:
@Scripts.RenderFormat("<script src='{0}' defer></script>","~/bundles/jquery")
Run Code Online (Sandbox Code Playgroud)
并将生成以下标记:
<script src="/Scripts/jquery-1.7.1.js" defer></script>
Run Code Online (Sandbox Code Playgroud)
Bel*_*014 15
上面的答案很棒.我只是想快速粘贴我的代码,以便那些想要更简洁的语法.
添加一个新的C#类
// --------------------------------------------------------------------------------------------------------------------
// <copyright file="Scripts7.cs" company="Believe">
// http://believeblog.azurewebsites.net/
// </copyright>
// --------------------------------------------------------------------------------------------------------------------
using System.Web;
using System.Web.Optimization;
namespace MVCExtension
{
/// <summary>
/// The scripts.
/// </summary>
public static class Scripts
{
/// <summary>
/// Render scripts as deferred
/// </summary>
/// <param name="paths">
/// The paths.
/// </param>
/// <returns>
/// The <see cref="IHtmlString"/>.
/// </returns>
public static IHtmlString RenderDefer(params string[] paths)
{
return Scripts.RenderFormat(@"<script src='{0}' defer></script>", paths);
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,使用Razor语法:
@Scripts.RenderDefer("~/bundles/jquery")
Run Code Online (Sandbox Code Playgroud)
或Webform语法:
<%: Scripts.RenderDefer("~/bundles/jquery") %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12218 次 |
| 最近记录: |