利用AJAX技术构建社区远程教育平台

时间:2022-10-27 05:39:47

利用AJAX技术构建社区远程教育平台

摘 要:随着基于Web2.0技术的互联网应用的兴起,作为Web2.0中主要的新技术-异步通信技术,在互联网的前端开发中获得了越来越广泛的应用,异步JavaScript和XML(AJAX)作为一种主要的异步通信技术也受到了越来越多的关注。本文以构建社区远程教育平台为例,论证了AJAX技术在远程教育学习平台的开发中所发挥的优势,阐述了基于AJAX技术的远程教育平台的前端实现模式。

关键词:AJAX 远程教育 异步通信技术

一、AJAX技术简介

Ajax(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。Ajax应用可以仅仅向服务器发送必要的请求并取回必需的数据,它使用SOAP或其它一些基于XML的页面服务接口,并在客户端采用JavaScript处理来自服务器的回应。因为在服务器和浏览器之间交换的数据大量减少(几乎只有原来的5%),所以可以使用更少的时间等待服务器的回应。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理任务大大的减少了,不仅节省了服务器资源,也节省了网络带宽。

二、社区远程教育平台简介

天津社区远程教育平台又名“天津数字化学习港”,是“数字化学习港与终身学习社会建设与示范”项目在社区教育中的成功实践。国务院总理、中央政法委书记等20余位国家和省部级领导曾到社区数字化学习中心视察。为了提高数字化学习平台对社区教育的支持服务水平,构建具有社区教育特色的远程教育学习支持服务模式,天津社区远程教育平台引进了先进的软硬件技术与设备,将优质教育资源输送到基层社区。

硬件方面,天津社区远程教育平台将WEB服务器、视频服务器和数据库服务器进行了合理的分离,采用两台WEB服务器做负载均衡及主备互换,三台视频服务器负责减少单线路视频流的压力和主备互换,数据库采用SQL Server 2005的镜像功能以实现双机热备和故障转移。

三、AJAX技术在远程教育平台开发中的应用

使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。通过Ajax技术,可以大幅度地降低服务器处理的任务,提高WEB应用的运行效率,较少带宽的占用,这些特点非常适合天津市社区远程教育平台的开发。下面将以用户获得课程资源业务为例,介绍基于AJAX技术的显示层实现方法。

当用户点击某门课程的“精彩课堂”时,客户端页面利用ajax技术对服务器做一次异步访问,把请求资源列表的课程编号传递给服务器,服务器接受到请求后,处理好列表信息,只把资源列表传递给客户端浏览器,浏览器仅刷新必要的内容即可。

利用Ajax技术获得资源列表的客户端JavaScript代码如下:

xmlHttp=createXmlHttp();

xmlHttp.onreadystatechange=requestFinished;

xmlHttp.open("GET", "CourseGetInner.aspx?cid="+courseid);

xmlHttp.send(null);

function requestFinished()

{

if(xmlHttp.readyState==4)

document.getElementById("content").innerHTML=xmlHttp.responseText;

}

这段代码使用JavaScript编写,被绑定到“精彩课堂”链接中的onclick事件,点击不同的“精彩课堂”将传递不同的课程ID。客户端浏览器将利用XmlHttpRequest对象对服务器的CourseGetInner.aspx文件进行异步访问并把访问完成后的处理方法绑定为一个函数:requestFinished()。requestFinished()函数在访问完成后被调用,检测访问状态,如果为4(正常状态),则把服务器返回的内容:xmlHttp.responseText放置在容器中。

服务器端页面使用一个DataList作为列表容器(CMSList),在服务器的后台代码中可以直接将DataList的数据源绑定为实体集合,即完成了数据绑定操作。

服务器端主要的后台代码(CourseGetInner.aspx.cs)如下:

……//获得courseid

CMSList.DataSource = BLL.CMSOperate.PostGetListByCourse(courseid);

CMSList.DataBind();

StringBuilder s=new StringBuilder();

control.RenderControl(new HtmlTextWriter(new StringWriter(s)));

Response.Write(s.ToString());

Response.End();

……

程序调用逻辑层获取资源列表方法:BLL.CMSOperate.PostGetListByCourse(Guid courseid)获得该课程ID对应的资源的实体对象集合List,该集合作为CMSList控件的数据源进行数据绑定。

绑定后,程序构建一个stringBuilder,并且利用该对象构建了一个HtmlTextWriter。最后,程序利用Control.RenderControl(HtmlTextWriter)方法渲染控件。通过Response.write()方法将渲染结果写入客户端。

上文中使用的数据绑定方法即利用了Ajax的异步请求,又利用了服务器控件的数据绑定,效果较好。

四、应用AJAX技术后的性能分析

基于Ajax的社区远程教育平台充分利用了Ajax技术的异步访问优势,将Web1.0中的基于刷新整个页面的B/S交互模式改进为只刷新页面关键区域的B/S交互模式。

表1的测试数据为了更好的说明Ajax技术对WEB应用的性能提升,测试基于查看公告页面(类似于社区平台中查看文本资源的操作),分别测试基于Ajax技术的访问模式与传统的Web应用访问模式。

表1中可以看出,Ajax访问与传统的Web访问相比较来说,第一次对页面的访问的流量和延迟要略高于传统Web访问模式,这是因为Ajax是一种浏览器技术,需要下载对应的JS包。从后面的测试数据中可以看出,Ajax访问模式无论在流量方面上还是在延迟方面都要远高于传统Web访问模式,性能提升约为60%,这在大量用户多次学习的应用中有着重要的意义。

参考文献:

[1]杨顺起,陈立勇.社区型数字化学习中心建设的实践与研究.中国远程教育,2008,(9):17-19.

[2]谢延红,钱爱增,胡凯,郝迎英. AJAX框架及在Web开发中的应用.长春工程学院学报(自然科学版),2007,(02):5-8.

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

上一篇:体验式教学在销售管理课程中的应用 下一篇:浅谈大学生就业能力现状及提高对策