【发布时间】:2011-09-14 23:16:52
【问题描述】:
ScriptManager 和 ToolkitScriptManager 有什么区别?我发现只有一个令人信服的理由:ToolkitScriptManager 提高了页面性能。如果是这样,为什么要使用ScriptManager?
【问题讨论】:
标签: asp.net asp.net-ajax scriptmanager
ScriptManager 和 ToolkitScriptManager 有什么区别?我发现只有一个令人信服的理由:ToolkitScriptManager 提高了页面性能。如果是这样,为什么要使用ScriptManager?
【问题讨论】:
标签: asp.net asp.net-ajax scriptmanager
首先:如果您使用 ASP.NET 3.5 和来自 AJAX Control Tookit 的控件,那么您必须使用 ToolkitScriptManager,而不是 ASP.NET ScriptManager。这个限制是因为工具包脚本管理器添加了更新的 Ajax 脚本,没有这个限制,来自 Ajax Control 工具包库的大多数控件都将无法工作。
如果您使用 ASP.NET 4.0 (4.5),则可以选择使用 ScriptManager 或 ToolkitScriptManager。
ToolkitScriptManager 的主要特点基本上是它可以结合使用 ScriptReference 集合添加到页面的 js 资源。这些 js 文件应该嵌入到程序集中,并且应该为此 Assembly ScriptCombine 添加程序集属性。这里的主要问题是您无法控制脚本的组合方式,并且在尝试组合自己的脚本之后,您可能会遇到很多问题(我有使用此功能的经验,因此我们拒绝使用以下方式组合我们的脚本这种方法)。
这里的要点是当前标准的脚本管理器能够使用复合脚本集合来组合脚本。此功能更灵活,更容易控制脚本在页面上的组合方式。更多信息可以通过以下链接找到:http://weblogs.asp.net/infinitiesloop/archive/2009/11/23/asp-net-4-0-scriptmanager-improvements.aspx。
另外,请注意,据我所知,如果您使用 ToolkitScriptManager,那么您将无法使用 CompositeScript 功能,即使考虑到 ToolkitScriptManager 派生自 ScriptManager。
所以,在 ASP.NET 4.0 中差异不是很大,最好避免使用 ToolkitScriptManager。主要原因是使用标准的 CompositeScript 功能,您可以更好地控制脚本的组合方式,并可以优化页面的呈现。
对于 ASP.NET 3.5,如果您想使用 Ajax Control Toolkit 库中的控件,您别无选择。
编辑
随着 ajax 控件工具包库的最新变化,他们继续更新 MS Ajax 脚本,这就是为什么如果不添加 ToolkitScriptManager 某些控件将无法工作的原因。
【讨论】: