在使用ASP.NET設計AJAX功能網頁時,需要首先聲明ToolkitScriptManager或者ScriptManager控件,這些全局的腳本核心控制,然后才能使用眾多的AJAX控件。如果沒有創建這兩個控件之一就直接使用AJAX控件,運行網頁時會出現錯誤。
就ToolkitScriptManager或ScriptManager來說,其作用是相同的,但實際使用中,注意到有如下情況出現(使用Visual Studio 2012版本):
1、在使用Ajax Control Toolkit中的控件時,如果聲明ToolkitScriptManager,則控件正常可以使用;但如果聲明ScriptManager,那么控件不能使用,但也不出現錯誤信息。
2、在使用VS2012本身自帶的UpdatePanel時,筆者以往的用法(VS008)是聲明ScriptManager,因為UpdatePanel與ScriptManager都在AJAX Extensions的Tab內,在VS2012中這種用法同樣可以的;如果不聲明ScriptManager而聲明ToolkitScriptManager也可以使用UpdatePanel;但如果ToolkitScriptManager和ScriptManager兩個同時在網頁內聲明,如下例:
<body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="Server" EnableScriptGlobalization="True" /> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <div id="content">
則出現“只能向頁面中添加 ScriptManager 的一個實例”錯誤,所以,只能使用其中一個Manager,否則兩個就會打架;
3、 網上有較詳盡的分析文章,說明ToolkitScriptManager的性能比ScriptManager性能更好
綜合以上分析,因此可以總結如下:
在使用ASP.NET設計AJAX網頁時,盡量聲明使用ToolkitScriptManager,它可以完成AJAX的所有工作,並且性能更佳,而ScriptManager有部分工作無法完成(AJAX Control Toolkit部分),並且性能稍差。