
3.11 ASP.NET AJAX Client Framework的版本
ASP.NET AJAX Client Framework提供了两种版本:Release及Debug。Release版本删除了调试信息及程序中不需要的断行,使此版本的文件大小缩到最小。文件越小,网页初次加载速度就越快,删除额外的调试信息则可以加快程序的运行效率,相对的,Release版本的可读性也变差了,所以只有在开发完成,要分发至客户端时,才适合切换到Release版本。Debug版本则正好相反,文件较大,可读性也较佳,设计师可利用该版本专有的调试信息来调试,此版本通常于开发时期使用。ScriptManager控件的ScriptMode属性可控制欲使用的版本,Debug代表使用Debug版本,Release代表使用Release版本,不过此值的设定会受到mechine.config中deployment区段的retail设定的影响。例如程序3-26 的设定便会将版本强制切换到Release版本,即使ScriptMode属性值是Debug也一样。
程序3-26
<system.web> <deployment retail="true" /> </system.web>
简单地说,当retail为True时,一定会输出Release版本,不管ScriptMode设定是什么!当retail是False时(默认值),若ScriptMode为Debug,则输出Debug版本;若为Release则输出Release版本。当ScriptMode是Auto或Inherit时,则依web.config中的compilation区段(程序3-27)设定而定,当此区段中的debug设为True时,就输出Debug版本,反之则输出Release版本。
程序3-27
<compilation debug="true">
表3-4是一个简表,示意何时会输出Release版本,何时会输出Debug版本。
表3-4

ScriptPath
默认情况下,ScriptManager控件所输出的ASP.NET AJAX Client Framework是内嵌于Assembly文件中的资源,设计师可以通过设定ScriptManager控件的ScriptPath属性明确告知ScriptManager控件到哪个目录取得ASP.NET AJAX Client Framework来输出。当然,在指定此目录前,得先将ASP.NET AJAX Client Framework的实例文件复制到这个目录中,默认安装时,这些文件安装于C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025\MicrosoftAjaxLibrary\System.Web.Extensions\1.0.61025.0\目录中,这目录中有两种版本的.js档,分别是Debug及Release。会使用ScriptPath属性的原因只有一个,那就是你修改了ASP.NET AJAX Client Framework中的内容,可能想调整Async-Postback行为,或者调整错误信息,不管意图是什么,请注意!ScriptPath属性值有特定的目录结构,例如其指定为ajaxScripts的话,那么该目录的结构一定要如图3-21所示。

图3-21
意思是说,ScriptPath所指定的是放这些.js文件的最上层目录名,而其下的目录名是既定的System.Web.Extensions/1.0.61025.0,.js文件必须放在<ScriptPath>/ System.Web.Extensions/1.0.61025.0/目录下。另外,当使用ScriptPath时,输出版本控制的方式也略有差异,见表3-5。
表3-5
