Ajax技术及其在WebGIS中的应用Word下载.docx
- 文档编号:13432907
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:3
- 大小:19.52KB
Ajax技术及其在WebGIS中的应用Word下载.docx
《Ajax技术及其在WebGIS中的应用Word下载.docx》由会员分享,可在线阅读,更多相关《Ajax技术及其在WebGIS中的应用Word下载.docx(3页珍藏版)》请在冰豆网上搜索。
Ajax使用XHTML和CSS标准化呈现数据,使用DOM实现动态显示和交互数据,使用XML和XSTL进行数据交换与处理,使用XMLHttpRequest对象进行异步数据读取,使用JavaScript绑定和处理所有数据[1]。
Ajax为交互操作较多、数据读写频繁和数据分类良好的Web应用提供了一个很好的解决方案。
其中XMLHttpRequest、JavaScript和DOM是Ajax技术的核心。
XMLHttpRequest XMLHttpRequest是Ajax引擎的核心技术,是Ajax引擎解决无需刷新整个页面即可从服务器获取所需数据问题的关键。
在微软IE平台下XMLHttpRequest是XMLHTTP组件的一个对象,它通过允许开发人员在web页面内部使用XMLHTTPActiveX组件扩展自身功能,开发人员不必从当前的Web页面导航而直接与服务器上的数据库进行双向数据传输。
该项功能相当重要,它弥补了无状态连接的缺点,排除下载冗余Web数据的需要,从而提高了进程速度。
DOM(DocumentobjectModel) DOM是给HTML和XML文件使用的一组API。
它提供了文件的结构表述,允许开发人员改变其中的内容,建立网页与程序语言沟通的桥梁。
所有Web开发人员操作及建立文件的属性、方法及事件都以对象方式来展现,这些对象均可由当今大多数浏览器以脚本取用。
一个用HTML或XHTML构建的网页可看作是一组结构化数据,这些数据被封在DOM(DocumentObjectModel)中,且DOM提供对网页中各个对象的读写支持。
JavaScriptJavaScript是一种在浏览器中大量使用的跨平台编程语言,常被用来制作网页特效或表单验证。
在Ajax中JavaScript则是XMLHttpRequest与DOM交互的桥梁以及Ajax引擎工作的主要推动力。
JavaScript通过调用XMLHttpRequest的属性和方法获取服务器端数据,调用DOM的API更新Web页面内容,从而实现整个页面的无刷新更新页面的效果。
2基于Ajax引擎的Web应用体系结构图1Ajaxweb应用程序模型Ajax采用异步交互过程,在用户与服务器之间引入一个中间媒介,从而消除网络交互过程中“处理—等待—处理—等待”的缺点。
用户的浏览器在执行任务时即装载了Ajax引擎,通常放在一个隐藏的框架中。
Ajax引擎采用JavaScript语言编写,负责编译用户界面及与服务器之间的交互。
Ajax引擎允许用户与应用软件之间的交互过程异步进行,独立于用户与网络服务器间的交流。
用JavaScript调用Ajax引擎来代替产生一个HTTP的用户动作,如内存中的数据编辑、页面导航、数据校验等无需重新载入整个页面的请求,可由Ajax引擎来执行[1],[17]。
基于Ajax引擎的Web应用体系结构模型如图1所示。
3Ajax的优点
减轻服务器和网络的负担Ajax的原则是“按需获取数据”,可最大程度地减少冗余请求和响应对服务器造成的负担。
把以前一些服务器承担的工作转到客户端,利用客户端闲置的能力进行处理,从而减轻服务器和网络的负担,节约空间和宽带租用成本。
无刷新更新页面,减少用户实际和心理等待时间首先,“按需获取数据”的理念减少了数据的实际读取量。
其次,DOM的使用不像传统刷新那样出现白屏的情况,而是在读取数据的过程中显示的是原来的页面状态,只有当接收到全部数据后才更新相应部分的内容,而这种更新也是瞬间的,用户几乎感觉不到,提高了可用性,提高了用户体验。
这种无刷新更新页面的功能,减少用户实际和心理等待时间。
基于现有公开的标准化Ajax技术标准公开,跨浏览器和跨平台,并且不需要插件或下载小程序。
实现数据聚合Ajax可以调用外部数据,实现数据聚合的功能。
比如微软发布的在线RSS阅读器;
用户还可以利用一些开放的数据,开发自已的应用程序,例如可用GOOGLE的地图数据做一些新颖的专题地图网络应用。
界面与应用分离,数据与呈现分离Ajax在整个Web服务系统中的位置决定了Ajax引擎只要从服务端获取XML或者其他格式的数据,便可定制整个Web界面,从而可以使用服务端只注重数据逻辑处理而不必关心Web界面的呈现,将数据呈现的工作交给Ajax引擎来做,这样有利于分工合作、减少非技术人员对页面的修改造成的Web应用程序错误,提高了效率,也更加适用于现在的发布系统。
有大厂商的支持AJAX被IT大厂商包括Google、yahoo、Amazon和微软大量采用并广泛应用到实际的项目开发中,证明了市场的欢迎程度和该技术的正确性。
4Ajax在WebGIS中的应用
通用AJAX开发框架AJAX遵循Request/Response模式,这个框架的基本流程为:
对象初始化->发送请求->服务器接收->服务器返回->客户端接收->修改客户端页面内容,这个过程是异步进行的。
(1)初始化对象并发出XMLHttpRequest请求。
为了让Javascript可以向服务器发送HTTP请求,必须使用XMLHttpRequest对象。
各个浏览器对这个实例化过程的实现方式不同。
IE以ActiveX控件的形式提供,而Mozilla等浏览器则直接以XMLHttpRequest类的形式提供。
if(){//Mozilla,Safari,...http_request=newXMLHttpRequest();
}elseif(){//IEhttp_request=newActiveXObject("
"
);
}
(2)指定响应处理函数 指定当服务器返回信息时客户端的处理方式,相应的处理函数名称赋给XMLHttpRequest对象的onreadystatechange属性。
例如:
http_=processRequest;
(3)发出HTTP请求 指定响应处理函数之后,就可以向服务器发出HTTP请求。
这一步调用XMLHttpRequest对象的open和send方法。
http_(‘GET‘,‘http:
///‘,true);
http_(null);
open的第一个参数是HTTP请求的方法,为Get、Post或者Head。
open的第二个参数是目标URL。
open的第三个参数只是指定在等待服务器返回信息的时间内是否继续执行下面的代码。
如果为True,则不会继续执行,直到服务器返回信息。
默认为True。
(4)处理服务器返回的信息 首先,它要检查XMLHttpRequest对象的readyState值,判断请求的当前状态。
形式if(http_==4){//信息已经返回,可以开始处理}else{//信息还没有返回,等待} 服务器返回信息后,还需要判断返回的HTTP状态码,确定返回的页面没有错误。
所有的状态码都可以在W3C的官方网站上查到。
其中,200代表页面正常。
if(http_==200){//页面正常,可以开始处理信息}else{//页面有问题}XMLHttpRequest对成功返回的信息有两种处理方式:
responseText将传回的信息当字符串使用;
responseXML将传回的信息当XML文档使用,可以用DOM处理。
基于Ajax通用组件的WebGIS开发框架AJAX一旦大规模实际应用,就会造成众多问题,如技术的多样性、分布耦合的复杂性、浏览器的兼容性、开发效率低下、开发进度慢、质量低和可维护性差等。
基于组件的AJAX开发,可以屏蔽技术的多样性和复杂性,集中维护修改,以一变应万变;
采用规范合理的架构,能够轻易扩展兼容各种平台后台语言和浏览器,从而才可能真正大规模在项目中实际应用。
下面以VisualStudio2005和C#为例,介绍组件在中的应用开发。
(1)下载最新版,在工程项目中添加引用,并修改配置文件。
?
xmlversion="
encoding="
utf-8"
addverb="
POST,GET"
path="
ajaxpro/*.ashx"
type="
"
//httpHandlers[...]//configuration
(2)以下是将地图居中的C#代码,函数返回一个指向缓存地图的URL地址,公开给客户端调用的后台C#函数需要添加AjaxMethod属性标记。
[()]publicstringdoCenterTool(doublex,doubley){//在使用Pooling后重新生成RestoreState();
myMap=null;
myMap=[0];
myCoordSys= DisplayCoordSys();
sP=new ((x),(y));
DPointmP=newDPoint(x,y);
//转换成地图坐标点(sP,outmP);
(mP,myCoordSys,);
//以流式输出,并在服务器端缓存returnexportToStream(myMap);
}(3)为了后台C#方法能够被客户端JavaScript调用,必须注册整个类。
protectedvoidPage_Load(objectsender,EventArgse){(typeof(_Default));
}(4)编写回调JavaScript脚本,将当前地图用新图代替。
functiondoReCenter_callback(newImageUrl){varmyMapImg=(‘MapControl1_Image‘);
=;
}(5)最后,在客户端使用JavaScript来生成一张新地图,可通过自定义工具或直接修改资源文件JavaScript代码实现。
doCenterTool(,,doReCenter_callback);
在WebGIS内部集成Ajax功能随着相关技术的成熟和Ajax的广泛使用,各大GIS厂商将会把Ajax集成到他们WebGIS平台内部去。
Google在2004年初推出GoogleMaps,融合了全球的空间地图数据以及高分辨率的影像,其中采用了特有Ajax技术AJAXSLT,ESRI的创始人兼总裁JackDangermond评价Google的网络GIS作用“正是Google打开了我们的世界,GIS行业正在趋于繁荣”[12]。
Microsoft的LiveLocal[19],Yahoo公司的Flash/AJAX等空间信息门户共同网站也采用了增强用户体验的AJAX技术,该技术良好的RWA(RichWebApplication)特性给普通大众用户使用GIS无疑带来了很大的福音。
ESRI正在开发ArcGIS,在ArcGISServer和ArcIMS的应用开发框架将包括了一个AJAX可用应用和丰富的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Ajax 技术 及其 WebGIS 中的 应用