结合脚本 - 3.5中的Toolscript管理器和CompositeScript

时间:2009-08-26 08:41:00

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

我一直在使用我网站上的AjaxControlToolkit中包含的toolscriptmanager。这个具有CombineScript属性,告诉scripmanager将来自ajax控件的必要脚本组合到一个脚本文件中。 但是,自3.5以来,标准scriptmanager支持“< CompositScripts>”您可以将(手动选择的)脚本组合到一个文件中。

我应该继续使用toolscriptmanager还是应该使用CompositScript来最大限度地提高性能?

2 个答案:

答案 0 :(得分:3)

这两个工具实际上是针对同一目标的两种不同方法。

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。

与许多事情一样,这取决于您的架构以及您可以投入多少精力。这些看起来都像是极端的方法,默认情况下包括一个,默认情况下一个在排除,并且似乎没有任何中间路径。 (我多么希望有一个。)

编辑:对于需要downvote的答案,有什么令人反感的?请通过评论解释自己。

答案 1 :(得分:0)

我觉得ScriptManager的Composite Scripts适用于mutliple 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。