万景WanJing;宋绍云SongShaoyun;殷凤玲YinFengling;刘海艳LiuHaiyan
(玉溪师范学院信息技术工程学院,玉溪653100)
摘要:客户端访问服务器文件,并要求服务器分发有关文件到客户端是基于B/S结构软件的研究热点,分析当前文件分发的缺点,提出一种新的文件分发方法,并用实际例子证明该方法的高效率性和实用性,对开发基于WEB的软件有一定的参考价值。
关键词:服务器;客户端;文件访问;传递数据
中图分类号:TP393文献标识码:A文章编号:1006-4311(2010)05-0160-02
0引言
AJAX是一种综合JavaScript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest等多种技术的综合应用所形成的一种新的设计方式,Ajax核心是对象XMLHttpRequest。该对象是一种支持异步请求的技术。因此Ajax采用的是异步交互过程,而非传统的Web应用程序所采用的同步交互过程。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。使用Ajax技术相当于在用户和服务器之间加了一个中间层,使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器,像一些数据验证和数据处理等交给Ajax引擎自己来做,只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求,这样把以前的一些服务器负担的工作转嫁到客户端,利用客户端闲置的处理能力来处理,减轻服务器和带宽的负担,从而达到节约ISP的空间及带宽租用成本的目的。特别是在客户端请求服务器分发文件时,可以达到较高的效率,在下面的例子中我们将加于验证。
1服务器中的文件访问方法
1.1文件共享服务器文件服务是局域网中最常用的服务之一,从WindowsNT开始就随着WindowsServer家族的不断升级换代而保留至今。在局域网中搭建文件服务器以后,可以通过设置用户对共享资源的访问权限来保证共享资源的安全。文件共享服务器为我们在局域网中访问服务器中文件的一种简便方法,但如果要客户端首先要启用guest来宾帐户,并把本地帐户的共享和“安全模式”要设为“仅来宾-本地用户以来宾的身份验证”,还要关闭客户端网络防火墙。以上工作都要手工设置完成。若要实现客户端自动访问服务器文件则不可能实现。
1.2FTP服务器FTP的全称是FileTransferProtocol(文件传输协议),是专门用来传输文件的协议。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上载或下载文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。次方法属于主动访问方式,随时可以上传下载服务器上的文件,但要实现文件自动分发则难于实现。例如,在OFFICE的模块化考试软件中,要把试卷库中的OFFICE文件(word、excel、PowerPoint)文件自动分发到学生机上,该方法则不能实现。
1.3AJAX技术Ajax,异步JavaScript与XML,是使用客户端脚本与Web服务器交换数据的Web应用开发方法。Ajax基本上就是把Javascript技术和XMLHttpRequest对象放在Web表单和服务器之间。当用户填写表单时,数据发送给一些Javascript代码而不是直接发送给服务器。相反,Javascript代码捕获表单数据并向服务器发送请求。同时用户屏幕上的表单也不会闪烁、消失或延迟。换句话说,Javascript代码在幕后发送请求,用户甚至不知道请求的发出。
请求是异步发送,即Javascript代码(和用户)不用等待服务器的响应。XmlHttp提供客户端同http服务器通讯的协议。客户端可以通过XmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用微软XML文档对象模型Microsoft®;XMLDocumentObjectModel(DOM)处理回应。创建XMLHTTP对象,打开与服务端的连接,同时定义指令发送方式,服务网页(URL)和请求权限等。客户端通过Open命令打开与服务端的服务网页的连接。与普通HTTP指令传送一样,可以用“GET”方法或“POST”方法指向服务端的服务网页。发送指令。等待并接收服务端返回的处理结果。释放XMLHTTP对象。Microsoft.XMLHTTP对象,能够完成从数据包到Request对象的转换以及发送任务。Ajax所倡导的异步通信方式使Web应用程序的用户体验正逐步向桌面系统的GUI体验靠近。Ajax主要用来提高Web应用程序的数据交换速度,按需更新Web应用程序的用户界面内容,快速地监听和响应浏览器客户端的用户行为。目前,已经能看到不少采用Ajax技术而改善了传统Web开发方式的应用方向。下面我们用AJAX实现在客户端向服务器请求时,向客户端自动分发文件的实例。
2用AJAX实现文件自动分发
现在有些大学在大学计算机基础课程的考试中,采用基于网络的在线考试,包括Windows操作、word操作、Excel操作、PPT操作都采用计算机自动评卷。这样的好处是节省阅卷时间,然而由于计算机阅卷,不可避免地使考试题规定得太“死”,或许是为了机器阅卷的方便,很大程度上限制了学生能力的发挥。为了充分挖掘学生独立思考能力、创造能力和运用能力。我们应根据学生的实际情况需要或能力培养的需要制作题库,计算机自动对客户端随机分发不同的试卷,然后人工阅卷,摆脱以前考试的死板性,而给学生一个挑战及发挥的空间。使用AJAX技术,在客户端只要给出服务器端存放文件的路径,就可以方便的把服务器端的文件下载到客户端。
其中:paper是存放考试试卷的文件夹(试题库文件夹),并把文件夹中所有的文件名保存在数值ysmyfile(i)中,并把扩张名保存在变量exfile中然后根据扩张名,通过response.write把文件传递到客户端浏览器。
其中:fori=1todocss
myfile1A(i)=document.all("myfile11("&cstr(i)&")").value
next
是从客户端取出服务器传递过来的文件名。
Setx=CreateObject("Microsoft.xmlhttp")
x.Open"GET","paper\"&myfile1A(ss),True
x.Send
是实现从服务器的试卷库中取出文件。
mstream.SaveToFile"d:\"&tfolder&"\"&maxtri(i)&"\考试题目.doc"
实现保存取出的文件保存到客户机的D盘,并改名为考试题目.doc。
在考试软件中,我们在教师机上根据服务器上的学生信息数据库中的学生姓名及学号自动在教师机上建立学生考试文件夹,并自动共享出来,在学生机上,自动映射网驱动器到教师机上的共享文件夹中,文件分发是在教师机上进行,自动把文件分配到各个学生文件夹中。这样学生就可以打开网络驱动器,直接看到考试试卷,打开试卷文件即可参加考试,
3总结
AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的webservice接口,并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。
但是,进行Ajax开发时,网络延迟——即用户发出请求到服务器发出响应之间的间隔——需要慎重考虑。不给予用户明确的回应,没有恰当的预读数据,或者对XMLHttpRequest的不恰当处理,都会使用户感到延迟,这是用户不欲看到的,也是他们无法理解的。通常的解决方案是,使用一个可视化的组件来告诉用户系统正在进行后台操作并且正在读取数据和内容。
参考文献:
[1]韩向春,吕艳霞.基于Wiki技术的WebGIS数据更新[J].计算机工程,2008,(11).
[2]刘香萍,赵雪岩,李建成.基于Web的UML建模系统[J].计算机工程,2008,(17).
[3]李伟,郑宁.运用XML和XSLT技术实现Web页面的重用[J].计算机应用,2004,(03).
[4]高兰,倪远平.采用Java技术开发可复用的Web表示层构件[J].计算机工程与设计,2006,(18).
[5]纪伟.AJAX技术在教学网站中的应用研究[D].北京交通大学,2008.