ArcGIS.Server.9.3.DotNet的ADF与ASP.NET AJAX
目的:
1.了解ArcGIS.Server.9.3.DotNet的ADF与ASP.NET AJAX的关系,这样能更好的理解客户端的编程。
背景:
AGS9.2 ADF与AGS9.3 ADF的Web applications开发方面最大的区别应该是9.3的应用构建于ASP.NET Ajax平台上的而且9.2是原先的ASP.NET script callback,当然9.3仍旧兼容这种模式了,当页面控件存在ScriptManager时,Web ADF控件使用ASP.NET AJAX异步调用,当该控件不存在时,Web ADF则使用script callback机制。ASP.NET AJAX分别提供了客户端和服务器端的解决方案,不论哪种情况,Web ADF客户端脚本库均使用ASP.NET AJAX客户端脚本来支持复杂的脚本环境,这样就非常有必要了解Web ADF JavaScript Library与ASP.NET Ajax JavaScript Library的关系。
一、ASP.NET AJAX后的初始化过程:
1.首先对生成的地图页面html代码进行分析发现如下的引入js文件的代码:
2.接着往下看能找到如下的代码:
3.在上面的代码中完成的Sys.Application的初始化工作,接下来的ADF控件的在客户端的初始化工作都交由Sys.Application对象的add_init方法来进行比如Toolbar控件、Navigation控件等。
1.了解ArcGIS.Server.9.3.DotNet的ADF与ASP.NET AJAX的关系,这样能更好的理解客户端的编程。
背景:
AGS9.2 ADF与AGS9.3 ADF的Web applications开发方面最大的区别应该是9.3的应用构建于ASP.NET Ajax平台上的而且9.2是原先的ASP.NET script callback,当然9.3仍旧兼容这种模式了,当页面控件存在ScriptManager时,Web ADF控件使用ASP.NET AJAX异步调用,当该控件不存在时,Web ADF则使用script callback机制。ASP.NET AJAX分别提供了客户端和服务器端的解决方案,不论哪种情况,Web ADF客户端脚本库均使用ASP.NET AJAX客户端脚本来支持复杂的脚本环境,这样就非常有必要了解Web ADF JavaScript Library与ASP.NET Ajax JavaScript Library的关系。
一、ASP.NET AJAX后的初始化过程:
1.首先对生成的地图页面html代码进行分析发现如下的引入js文件的代码:
1<script src="/WebResource.axd?d=0N8KHp8frxNtVgNzCetRdUutgL87Ya16XZLqmCnhnEIFJEBuBoY4FrreHUOGtfyfKINM-ag5tJJ8INMJh0sWUjQer9_MCMnmT2nzoYarF8WUYrpkTLqKsux89TJpiHohAJWXCiGnR0n4iIvU2i-_ql2-BfWTZjG_BNfRgISWhzP7NicOQ8Sogo4_3reQFFkx0&t=633592481492187500" type="text/javascript"></script>
这个就是引入了微软的名叫MicrosoftAjax.js文件(大家可以自己去获取一下读读它的代码),这样在ADF的脚本中可以使用ASP.NET Ajax类库提供的那些方法了,比如$get方法、$find方法、Sys.Application对象等。2.接着往下看能找到如下的代码:
1<script type="text/javascript">
2//<![CDATA[
3Sys.Application.initialize();esriSystemDecimalDelimiter=ESRI.ADF.System.decimalDelimiter='.';ESRI.ADF.System.maximumLapseTime = 20;esriBlankImagePath=ESRI.ADF.System.blankImagePath="/WebResource.axd?d=0N8KHp8frxNtVgNzCetRdUutgL87Ya16XZLqmCnhnEIFJEBuBoY4FrreHUOGtfyfKINM-ag5tJJ8INMJh0sWUjQer9_MCMnmT2nzoYarF8WUYrpkTLqKsux89TJpiHoh-lLjkMB7HpxriIQdK3c9BffxCo0OtvW-XlrUOieVkZQ1&t=633592481492187500";//]]>
4</script>
在这里主要是Sys.Application.initialize();这句是对ASP.NET Ajax是Sys.Application对象进行了初始化,在ASP.NET Ajax的页面中Application class被创建初始化负责整个客户端页面的生命周期。2//<![CDATA[
3Sys.Application.initialize();esriSystemDecimalDelimiter=ESRI.ADF.System.decimalDelimiter='.';ESRI.ADF.System.maximumLapseTime = 20;esriBlankImagePath=ESRI.ADF.System.blankImagePath="/WebResource.axd?d=0N8KHp8frxNtVgNzCetRdUutgL87Ya16XZLqmCnhnEIFJEBuBoY4FrreHUOGtfyfKINM-ag5tJJ8INMJh0sWUjQer9_MCMnmT2nzoYarF8WUYrpkTLqKsux89TJpiHoh-lLjkMB7HpxriIQdK3c9BffxCo0OtvW-XlrUOieVkZQ1&t=633592481492187500";//]]>
4</script>
3.在上面的代码中完成的Sys.Application的初始化工作,接下来的ADF控件的在客户端的初始化工作都交由Sys.Application对象的add_init方法来进行比如Toolbar控件、Navigation控件等。