ScriptManager
和ToolkitScriptManager
之间有什么区别?我发现只有一个令人信服的理由:ToolkitScriptManager
可以提高页面性能。如果是这样,为什么要使用ScriptManager
?
答案 0 :(得分:27)
首先:如果您使用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文件应嵌入到程序集中,并且应该添加此程序集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的情况下无法工作的原因。