论文部分内容阅读
[摘 要]随着Web平台越来越成熟,我们可以发现有越来越多的令人兴奋的技术出现,这些技术使数字图书馆应用达到了一个功能强大且应用广泛的新高度,通过把最新的功能强大的技术整合到数字图书馆应用系统中去,可以得到高效率的执行结果,随之赋予了更多的功能。在目前基于浏览器应用程序的开发技术中,AJAX(Asynchronous JavaScript and XML)无疑是最新的技术。在本文中,介绍了一个通用的,高效的架构,这个架构把AJAX模型整合到了随书光盘显示系统中。
[关键词]Ajax;数字图书馆;随书光盘
[中图分类号]G25076 [文献标识码]A [文章编号]1008-0821(2010)05-0118-03
The Application of Ajax in Attached CD-ROM System of Digital LibraryLian Xiaoqi
(Library,Affiliated Hospital of Nantong University,Nantong 226001,China)
[Abstract]As the Web platform becomes more and more mature,an increasing number of exciting technologies appears,these technologies enable the application of digital library to reach a powerful and widely used new height,through integrating the newest and powerful technologies into the application systems of digital library,highly efficient implementation results can be obtained,and then more functions were given along with it.AJAX(Asynchronous JavaScript and XML)assuredly was the latest technology during the current browser-based application programs development technologies,this paper introduced a generic and efficient architecture which integrates the AJAX model into a CD-ROM with the book display system.
[Keywords]Ajax;digital library;CD-ROM of digital library
1 数字图书馆随书光盘系统
近年来,随着计算机技术、网络技术、多媒体技术以及数据处理技术的迅速发展,图书馆的随书光盘存储量迅速增长,光盘作为一种新的文献载体已经成为图书馆馆藏和流通的重要组成部分。随书光盘是一种电子出版物,是对图书内容的说明与解释,附有大量的实例和图表,是和图书一起出版、发行的附件,与图书密不可分。读者通过计算机对所附的光盘进行阅读,可以加深对书中内容的理解,起到辅助学习的作用。当前随书光盘数量正在急剧增加,特别是TP(工业技术)类的增加更为明显,并且内容更新比较快、时效性很强。因此,对随书光盘加强管理,让其内容得到有效利用,起到知识增值的作用,已成为各图书馆普遍关注的问题。如何管理与利用这些随书光盘成了图书馆新的问题与挑战。
目前,许多图书馆都开发了随书光盘发布系统,在检索光盘时许多系统都是填写表单然后等待页面跳转的同步请求/响应模式,即用户的界面操作触发HTTP请求,服务器在接收到请求之后进行业务逻辑处理,比如保存数据,然后向客户端返回一个HTML页面。但服务器处理数据的时候,用户处于等待的状态,每一步操作都需要等待,使得Web用户界面在响应灵敏性方面大打折扣。而Ajax带给用户完全不同的浏览感受。传统的动态网页技术被隐藏到Ajax的后台。用户所看到的只是一个静态页面,不需要在提交页面后等待或者主动刷新网页。动态程序反馈的结果被直接无刷新地显示在这个页面上。因此利用Ajax开发的Web应用程序能够提供响应极其灵敏的Web用户界面,使得应用过程很自然,操作很流畅,并消除了页面刷新所带来的闪烁。
2 Ajax介绍
Ajax是Asynchronous JavaScript and XML的缩写。实际上,Ajax并不是什么新技术,它是由几种蓬勃发展的技术以新的方式组合而成的,这几种技术分别如下。
21 XMLHttpRequest
XMLHttpRequest是Ajax当中最重要的也是最核心的技术,它最早是在IE 5中通过一个名为XMLHTTP的ActiveX对象来实现的。XMLHTTPRequest对象使得页面中的脚本具有了在不刷新页面的情况下直接与服务器端通信的能力。与此对应,Mozilla、Opera和Safari都以类似的方式实现了XMLHttpRequest对象的形为。
22 XML(eXtensible Markup Language)
XML具有一种开放的、可扩展的和可自描述的语言结构,目前,它已经成为因特网上数据和文档传输的标准。在应用Ajax技术时,XMLHttpRequest对象可以选择使用XML作为与服务器端通信的数据格式。
23 DOM(Document Object Model)
DOM是面向HTML和XML文档的API,它为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构。在应用Ajax技术时,可以通过DOM来解析处理XML文档和更新HTML页面的内容。
24 Javascript
Javascript是一种在浏览器端大量使用的编程语言,它可以使用浏览器中的很多对象,包括XMLHttpRequest。在Ajax中,Javascript通过调用XMLHttpRequest对象的属性和方法与服务器端进行数据交互,同时还可以利用DOM的API来解析从服务器端返回的XML数据和更新HTML页面的内容。
AJAX是一种独立于Web服务器软件的浏览器技术。它为浏览器提供了与服务器端异步通信的能力,从而使用户从请求/响应的循环中解脱出来,这样,使得Web浏览器看起来就像是即时响应的桌面应用程序一样。使因特网应用程序更小、更快,更友好。
AJAX工作的大致流程是这样的:首先由用户user在客户端browser页面端触发一个事件,比如说onblur事件,这个事件是能被Javascript捕获到的。然后Javascript相应的创建一个XMLHttpRequest请求,并通过XMLHttpRequest异步的把请求发送到服务器端,同时等待服务器端的响应。服务器端程序在接受请求后,着手处理并把结果返回,返回的结果被XMLHttpRequest捕获到并返回给Javascript,再由Javascript调用相应的DOM进行显示层的控制。图1详细的描述了AJAX工作的原理。2010年5月第30卷第5期Ajax在数字图书馆随书光盘系统中的应用May,2010Vol30 No5图1 AJAX的交互工作原理图3 Ajax在数字图书馆随书光盘系统中应用的设计与实现31 应用设计
本光盘系统中一个简单的应用设计:在用户浏览光盘系统时,鼠标放在一张光盘上,这张光盘的ID就会发送到中心服务器,然后提供这张光盘的更多细节而页面并不刷新,每张光盘的详细信息并不是放在隐藏的表单域中,用户浏览起来更容易,不必点击光盘,看完光盘详细信息后再点击回到光盘列表页面。
32 系统应用的实现
321 客户端:
这是在客户端显示的一张光盘的图片,当鼠标移到该图片上时调用getDetail函数,id号为光盘的惟一编号。
var xmlHttp
function getDetail(id)
{ if(id!=″″)
{ var url=″getDetail.asp?id=″&id ∥将id号传递给请求处理的页面
? xmlHttp=GetXmlHttpObject(stateChanged)
? xmlHttp.open(″GET″,url,true) ∥这个方法会建立对服务器的调用,要提供调用的特定方法(GET,POST或PUT),还要提供用调用资源的URL,另外还可以传递一个BOOLEAN值,指示这个调用是异步还是同步,默认为TRUE,表示请求本质上是异步的
? xmlHttp.send(null)
}
else
{
? document.form1.codeA.value=″″
}
}
function stateChanged() ∥每个状态改变时都会触发statechanged这个事件处理器
{
var s,ss;
if(xmlHttp.readyState==4‖xmlHttp.readyState==″complete″) ∥readyState是请求的状态,有5个可取值:0=未初始化,1=正在加载,2=已加载,3=交互中,4=完成.当xmlHttp.readyState==4时已得到服务器端返回的数据,此时将数据插入到页面中的指定容器中。
{
? respText=xmlHttp.responseText; ∥获取返回的数据
? document.getElementById(″DiscDetails″).innerText=respText; ∥获取id为DiscDetails的容器,将数据插入到该容器中
}
}
function GetXmlHttpObject(handler) ∥该函数根据不同的浏览器生成XMLHttpRequest对象
{
var objXmlHttp=null
if(navigator.userAgent.indexOf(″Opera″)>=0)
{
? alert(″This example doesnt work in Opera″)
? return;
}
if(navigator.userAgent.indexOf(″MSIE″)>=0)
{
? var strName=″Msxml2.XMLHTTP″
? if(navigator.appVersion.indexOf(″MSIE 5.5″)>=0)
? {
? ? strName=″Microsoft.XMLHTTP″
? }
? try
? {
? ? objXmlHttp=new ActiveXObject(strName)
? ? objXmlHttp.onreadystatechange=handler
? ? return objXmlHttp
? }
? catch(e)
? {
? ? alert(″Error.Scripting for ActiveX might be disabled″)
? ? return
? }
}
if(navigator.userAgent.indexOf(″Mozilla″)>=0)
{
? objXmlHttp=new XMLHttpRequest()
? objXmlHttp.onload=handler
? objXmlHttp.onerror=handler
? return objXmlHttp
}
}
322 服务器端:
getDetail.asp
id=Request.querystring(″id″)∥获取客户端传来的光盘id号
sql=″select top 1*from[DiscDetails]where id=″&id
set rs=conn.execute(sql) ∥执行sql语句检索数据库
response.Write(rs(″content″)) ∥将数据库中的光盘内容数据写回客户端
33 应用测试
该系统测试的客户端为Internet Explore60和FireFox10,服务器端为Windows2003和RedHat AS4+JDK15+Tomcat559,网络环境为服务器在教育网内,客户机在局域网内和远程电信网。系统在局域网内部和广域网上的测试均达到了预期效果。
4 总 结
本文只是设计开发了AJAX在随书光盘系统中进行显示时一个简单的应用,其实它还可以在许多方面得到应用,比如用户登陆光盘系统点击率统计、用户进行光盘检索时表单填写等。
参考文献
[1]Jesse James Garrett.Ajax:A New Approach to Web Applications[EB/OL].http:∥adaptivepath.com/publications/essaysJarchives/000385.php,2006-02-28.
[2]David Flanagan.JavaScript:The Detnitive Guide 4th Edition[M].0Neilly Media,Inc,2001.
[3]黄国平,陈斌.JSP与JavaScript整合使用[J].南通职业大学学报,2004,(4).
[4]Jerome Sonnet,Charles Savage.OGC Web Service Soap Experiment Report 08 Document#03-014,Jan 2003.
[5]Message based middleware project at Community Grids Lab,Project Web Site:http:∥www.naradabrokering.org
[6]Pallickara S.and Fox G.,“NaradaBrokering:A Distributed Middleware Framework and Architecture for Enabling Durable Peer-to-Peer Grids”ACM/IFIP/USENIX International Middleware Conference Middleware-2003,Rio Janeiro,Brazil June 2003.
[7]GIS Research at Community Grids Lab,Project Web Site:http:∥www.crisisgrid.org
[8]MapServer official web site http:∥ms.gis.umn.edu
[9]Tyler Mitchell,“Build AJAX-Based Web Maps Using ka-Map”http:∥www.xml.com/pub/a/2005/08/10/ka-map.html
[关键词]Ajax;数字图书馆;随书光盘
[中图分类号]G25076 [文献标识码]A [文章编号]1008-0821(2010)05-0118-03
The Application of Ajax in Attached CD-ROM System of Digital LibraryLian Xiaoqi
(Library,Affiliated Hospital of Nantong University,Nantong 226001,China)
[Abstract]As the Web platform becomes more and more mature,an increasing number of exciting technologies appears,these technologies enable the application of digital library to reach a powerful and widely used new height,through integrating the newest and powerful technologies into the application systems of digital library,highly efficient implementation results can be obtained,and then more functions were given along with it.AJAX(Asynchronous JavaScript and XML)assuredly was the latest technology during the current browser-based application programs development technologies,this paper introduced a generic and efficient architecture which integrates the AJAX model into a CD-ROM with the book display system.
[Keywords]Ajax;digital library;CD-ROM of digital library
1 数字图书馆随书光盘系统
近年来,随着计算机技术、网络技术、多媒体技术以及数据处理技术的迅速发展,图书馆的随书光盘存储量迅速增长,光盘作为一种新的文献载体已经成为图书馆馆藏和流通的重要组成部分。随书光盘是一种电子出版物,是对图书内容的说明与解释,附有大量的实例和图表,是和图书一起出版、发行的附件,与图书密不可分。读者通过计算机对所附的光盘进行阅读,可以加深对书中内容的理解,起到辅助学习的作用。当前随书光盘数量正在急剧增加,特别是TP(工业技术)类的增加更为明显,并且内容更新比较快、时效性很强。因此,对随书光盘加强管理,让其内容得到有效利用,起到知识增值的作用,已成为各图书馆普遍关注的问题。如何管理与利用这些随书光盘成了图书馆新的问题与挑战。
目前,许多图书馆都开发了随书光盘发布系统,在检索光盘时许多系统都是填写表单然后等待页面跳转的同步请求/响应模式,即用户的界面操作触发HTTP请求,服务器在接收到请求之后进行业务逻辑处理,比如保存数据,然后向客户端返回一个HTML页面。但服务器处理数据的时候,用户处于等待的状态,每一步操作都需要等待,使得Web用户界面在响应灵敏性方面大打折扣。而Ajax带给用户完全不同的浏览感受。传统的动态网页技术被隐藏到Ajax的后台。用户所看到的只是一个静态页面,不需要在提交页面后等待或者主动刷新网页。动态程序反馈的结果被直接无刷新地显示在这个页面上。因此利用Ajax开发的Web应用程序能够提供响应极其灵敏的Web用户界面,使得应用过程很自然,操作很流畅,并消除了页面刷新所带来的闪烁。
2 Ajax介绍
Ajax是Asynchronous JavaScript and XML的缩写。实际上,Ajax并不是什么新技术,它是由几种蓬勃发展的技术以新的方式组合而成的,这几种技术分别如下。
21 XMLHttpRequest
XMLHttpRequest是Ajax当中最重要的也是最核心的技术,它最早是在IE 5中通过一个名为XMLHTTP的ActiveX对象来实现的。XMLHTTPRequest对象使得页面中的脚本具有了在不刷新页面的情况下直接与服务器端通信的能力。与此对应,Mozilla、Opera和Safari都以类似的方式实现了XMLHttpRequest对象的形为。
22 XML(eXtensible Markup Language)
XML具有一种开放的、可扩展的和可自描述的语言结构,目前,它已经成为因特网上数据和文档传输的标准。在应用Ajax技术时,XMLHttpRequest对象可以选择使用XML作为与服务器端通信的数据格式。
23 DOM(Document Object Model)
DOM是面向HTML和XML文档的API,它为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构。在应用Ajax技术时,可以通过DOM来解析处理XML文档和更新HTML页面的内容。
24 Javascript
Javascript是一种在浏览器端大量使用的编程语言,它可以使用浏览器中的很多对象,包括XMLHttpRequest。在Ajax中,Javascript通过调用XMLHttpRequest对象的属性和方法与服务器端进行数据交互,同时还可以利用DOM的API来解析从服务器端返回的XML数据和更新HTML页面的内容。
AJAX是一种独立于Web服务器软件的浏览器技术。它为浏览器提供了与服务器端异步通信的能力,从而使用户从请求/响应的循环中解脱出来,这样,使得Web浏览器看起来就像是即时响应的桌面应用程序一样。使因特网应用程序更小、更快,更友好。
AJAX工作的大致流程是这样的:首先由用户user在客户端browser页面端触发一个事件,比如说onblur事件,这个事件是能被Javascript捕获到的。然后Javascript相应的创建一个XMLHttpRequest请求,并通过XMLHttpRequest异步的把请求发送到服务器端,同时等待服务器端的响应。服务器端程序在接受请求后,着手处理并把结果返回,返回的结果被XMLHttpRequest捕获到并返回给Javascript,再由Javascript调用相应的DOM进行显示层的控制。图1详细的描述了AJAX工作的原理。2010年5月第30卷第5期Ajax在数字图书馆随书光盘系统中的应用May,2010Vol30 No5图1 AJAX的交互工作原理图3 Ajax在数字图书馆随书光盘系统中应用的设计与实现31 应用设计
本光盘系统中一个简单的应用设计:在用户浏览光盘系统时,鼠标放在一张光盘上,这张光盘的ID就会发送到中心服务器,然后提供这张光盘的更多细节而页面并不刷新,每张光盘的详细信息并不是放在隐藏的表单域中,用户浏览起来更容易,不必点击光盘,看完光盘详细信息后再点击回到光盘列表页面。
32 系统应用的实现
321 客户端:
这是在客户端显示的一张光盘的图片,当鼠标移到该图片上时调用getDetail函数,id号为光盘的惟一编号。
var xmlHttp
function getDetail(id)
{ if(id!=″″)
{ var url=″getDetail.asp?id=″&id ∥将id号传递给请求处理的页面
? xmlHttp=GetXmlHttpObject(stateChanged)
? xmlHttp.open(″GET″,url,true) ∥这个方法会建立对服务器的调用,要提供调用的特定方法(GET,POST或PUT),还要提供用调用资源的URL,另外还可以传递一个BOOLEAN值,指示这个调用是异步还是同步,默认为TRUE,表示请求本质上是异步的
? xmlHttp.send(null)
}
else
{
? document.form1.codeA.value=″″
}
}
function stateChanged() ∥每个状态改变时都会触发statechanged这个事件处理器
{
var s,ss;
if(xmlHttp.readyState==4‖xmlHttp.readyState==″complete″) ∥readyState是请求的状态,有5个可取值:0=未初始化,1=正在加载,2=已加载,3=交互中,4=完成.当xmlHttp.readyState==4时已得到服务器端返回的数据,此时将数据插入到页面中的指定容器中。
{
? respText=xmlHttp.responseText; ∥获取返回的数据
? document.getElementById(″DiscDetails″).innerText=respText; ∥获取id为DiscDetails的容器,将数据插入到该容器中
}
}
function GetXmlHttpObject(handler) ∥该函数根据不同的浏览器生成XMLHttpRequest对象
{
var objXmlHttp=null
if(navigator.userAgent.indexOf(″Opera″)>=0)
{
? alert(″This example doesnt work in Opera″)
? return;
}
if(navigator.userAgent.indexOf(″MSIE″)>=0)
{
? var strName=″Msxml2.XMLHTTP″
? if(navigator.appVersion.indexOf(″MSIE 5.5″)>=0)
? {
? ? strName=″Microsoft.XMLHTTP″
? }
? try
? {
? ? objXmlHttp=new ActiveXObject(strName)
? ? objXmlHttp.onreadystatechange=handler
? ? return objXmlHttp
? }
? catch(e)
? {
? ? alert(″Error.Scripting for ActiveX might be disabled″)
? ? return
? }
}
if(navigator.userAgent.indexOf(″Mozilla″)>=0)
{
? objXmlHttp=new XMLHttpRequest()
? objXmlHttp.onload=handler
? objXmlHttp.onerror=handler
? return objXmlHttp
}
}
322 服务器端:
getDetail.asp
id=Request.querystring(″id″)∥获取客户端传来的光盘id号
sql=″select top 1*from[DiscDetails]where id=″&id
set rs=conn.execute(sql) ∥执行sql语句检索数据库
response.Write(rs(″content″)) ∥将数据库中的光盘内容数据写回客户端
33 应用测试
该系统测试的客户端为Internet Explore60和FireFox10,服务器端为Windows2003和RedHat AS4+JDK15+Tomcat559,网络环境为服务器在教育网内,客户机在局域网内和远程电信网。系统在局域网内部和广域网上的测试均达到了预期效果。
4 总 结
本文只是设计开发了AJAX在随书光盘系统中进行显示时一个简单的应用,其实它还可以在许多方面得到应用,比如用户登陆光盘系统点击率统计、用户进行光盘检索时表单填写等。
参考文献
[1]Jesse James Garrett.Ajax:A New Approach to Web Applications[EB/OL].http:∥adaptivepath.com/publications/essaysJarchives/000385.php,2006-02-28.
[2]David Flanagan.JavaScript:The Detnitive Guide 4th Edition[M].0Neilly Media,Inc,2001.
[3]黄国平,陈斌.JSP与JavaScript整合使用[J].南通职业大学学报,2004,(4).
[4]Jerome Sonnet,Charles Savage.OGC Web Service Soap Experiment Report 08 Document#03-014,Jan 2003.
[5]Message based middleware project at Community Grids Lab,Project Web Site:http:∥www.naradabrokering.org
[6]Pallickara S.and Fox G.,“NaradaBrokering:A Distributed Middleware Framework and Architecture for Enabling Durable Peer-to-Peer Grids”ACM/IFIP/USENIX International Middleware Conference Middleware-2003,Rio Janeiro,Brazil June 2003.
[7]GIS Research at Community Grids Lab,Project Web Site:http:∥www.crisisgrid.org
[8]MapServer official web site http:∥ms.gis.umn.edu
[9]Tyler Mitchell,“Build AJAX-Based Web Maps Using ka-Map”http:∥www.xml.com/pub/a/2005/08/10/ka-map.html