【问题标题】:Combining scripts - Toolscript manager vs CompositeScript in 3.5组合脚本 - 3.5 中的工具脚本管理器与 CompositeScript
【发布时间】:2010-11-22 22:12:07
【问题描述】:

我一直在使用我网站上的 AjaxControlToolkit 中包含的工具脚本管理器。这个有一个 CombineScript 属性,它告诉 scripmanager 将来自 ajax 控件的必要脚本组合到一个单独的脚本文件中。 但是,从 3.5 开始,标准脚本管理器支持“”,您可以将(手动选择的)脚本合并到一个文件中。

我应该继续使用 toolscriptmanager 还是应该使用 CompositScript 来最大化性能?

【问题讨论】:

    标签: asp.net performance asp.net-ajax ajaxcontroltoolkit


    【解决方案1】:

    这两种工具本质上是实现同一目标的两种不同方法。

    Toolkit 的脚本管理器旨在组合整个站点中的每个可用 JS 文件。这里的好处是它很容易设置 - 您替换 ScriptManager 并放手。不利的一面是,除非每个页面都使用完全相同的脚本集,否则您将迫使用户下载过多的脚本代码。如果您的主页使用脚本 A、B、C、D,而内页使用 A、B、C、D、E,那么当您的用户点击内页时,他们将不得不重新下载 A、B、C 的内容,D 因为它将是不同组合脚本资源的一部分。

    CompositeScript 功能对它包含的脚本非常挑剔。开发人员必须分析每个页面上使用了哪些脚本并将它们添加到组合脚本中。在前面的示例中,您可以选择(最好在母版页中)将 A、B、C、D 组合起来,但不能选择 E。然后您的用户将点击主页,然后将 A、B、C、D 下载到一枪。然后他们会继续到内页,他们的浏览器缓存中已经有 A-D,只需要下载 E。

    因此,与许多事情一样,这取决于您的架构以及您可以投入多少精力。这两种方法似乎都是极端的方法,一种是默认包含的方法,一种是默认的排除方法,而且似乎没有任何中间路径。 (我多么希望有一个。)

    编辑:这个需要否决的答案有什么令人反感的?请用评论解释你自己。

    【讨论】:

    • 谢谢! (我希望我不是反对它的人..???)我们实际上选择了第三个选项,手动将所有页面所需的所有脚本合并到一个脚本文件中(A、B、C、D、E )。这意味着用户只需执行一个脚本请求一次。事实证明,延迟是比传输时间更大的问题,特别是对于亚洲用户而言。因此,将请求数量减少到最低限度是我们的最佳选择。
    • ASP.NET Ajax - 将 ScriptResource.axd 的脚本组合并移动到静态脚本hanselman.com/blog/…
    【解决方案2】:

    我感觉 ScriptManager 的复合脚本旨在用于多个 js 文件。

    <asp:ScriptManager ID="ScriptManager1" runat="server">
        <CompositeScript>
            <Scripts>
                <asp:ScriptReference Path="~/Scripts/Script1.js" />
                <asp:ScriptReference Path="~/Scripts/Script2.js" />
                <asp:ScriptReference Path="~/Scripts/Script3.js" />
            </Scripts>
        </CompositeScript>
    </asp:ScriptManager>
    

    虽然 ToolScriptManager 组合了自动生成的资源脚本。 (以及其他指定的脚本:combine scripts in asp.net ajax toolkit

    ScriptManager 将允许您选择要组合的脚本文件,这取决于您对各种文件的站点使用情况,这将允许更少的用户下载。

    我会继续使用 ToolkitScriptManager。

    【讨论】:

      猜你喜欢
      • 2011-09-14
      • 2016-01-28
      • 2010-12-09
      • 1970-01-01
      • 2010-10-12
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多