我一直在使用我网站上的AjaxControlToolkit中包含的toolscriptmanager。这个具有CombineScript属性,告诉scripmanager将来自ajax控件的必要脚本组合到一个脚本文件中。 但是,自3.5以来,标准scriptmanager支持“< CompositScripts>”您可以将(手动选择的)脚本组合到一个文件中。
我应该继续使用toolscriptmanager还是应该使用CompositScript来最大限度地提高性能?
答案 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。