admin 管理员组文章数量: 1086019
2024年3月7日发(作者:selection香水多少钱)
基于Jquery Mobile的数字校园移动应用实践
随着信息技术的迅速发展,数字校园已成为高校信息化建设发展的趋势和学校现代化的标志。数字校园建设为高校学生与教师的学习生活带来了深刻的影响,它正在改变着学校原有的管理、教学和办公模式。北京师范大学数字校园信息服务从师生需求出发,结合当代移动应用技术,自主开发了基于jquery mobile技术的数字校园移动应用。该应用包含了通知公告、校园卡移动充值、教师信息查询、数字校园地图、校内电话黄页五大模块。数字校园移动应用的推出,受到校园广大师生的一致认可,以校园卡充值为例,学生仅需在手机上即可完成转账充值,同时也节省了教职员工的管理成本与沟通成本。
一、前端架构
该应用包括ios和android两个版本。由于采用jquery mobile和cordova技术,该应用在平台间的移植成本相对较低。
jquery作为世界知名框架驱动着 internet 上的大量网站,在浏览器中提供动态用户体验。在移动互联时代的今天,jquery
团队引入了 jquery mobile(或 jqm)。jqm 的使命是向所有主流移动浏览器提供一种统一体验,使整个 internet 上的内容更加丰富。webkit 是一个开源项目,其起源可追溯到k desktop
environment (kde)。webkit 项目催生了面向移动设备的现代
web 应用程序。目前ios和android的内置浏览器组件均使用webkit内核,而jqm对于webkit的支持非常完善。 jqm目前可
以支持多种移动设备,iphone、ipod touch、ipad、android、blackberry、palm、nokia塞班三代等。
phonegap是一个用基于html,css和javascript的创建移动跨平台移动应用程序的快速开发平台,后贡献给apache后更名为cordova。它使开发者能够利用js和html来访问包括地理定位,加速器,联系人,声音和振动等功能,其拥有丰富的插件,可以以此扩展无限的功能。cordova是免费的,但是它需要特定平台提供的附加软件,例如iphone的iphone sdk,android的android sdk等。尽管使用cordova仍然需要为每个平台分别编译应用程序,但是其基本代码是一样的。
二、后端架构
后端架构业界包括以php、python、ruby、nodejs等弱类型语言为代表的架构,与之相对应的还有以c#和java为代表的强类型语言架构。由于数字校园移动应用的受众都是在校学生和教师,因此在高校中我们并不需要采用nodejs这样适合大并发的架构,也不需要采用mongodb这样的大型nosql数据库。因此我们采用了适合校情特点的 mvc 4.0 结合 dbentry orm作为基础后端架构。如今 已经很好的移植到了mono平台上,在mono 3.0发布之际,这种后端架构的也具有如同java一样优秀的跨平台特性。
dbentry 是梁立峰老师从2005年开始研究开发的开源orm产品,是国产orm的佼佼者,很适合跨平台数据库开发。尤其是其具
有良好的emit特性,使得其可以在不引用任何数据库组件的情况下完成数据库的curd。dbentry与entityframeworkcodefirst具有设计理念上的本质不同。dbentry采用富血模型,著名软件工程师马丁曾经对富血模型大加赞誉,其本质的思路是用户操作数据库的行为要包含在数据库模型之内。比如save,delete需要包含在数据库模型本身里面。而ef5.0本身的设计思路是贫血模型,尽管加入了attribute的特性。贫血模型在大型工程上更加便于分块使用,可以减少代码耦合,但是不利于小型项目的集成开发,会徒增工作量。此外,dbentry对组合查询支持得非常完善,而ef5.0需要借助linqkit等工具去组合lambda表达式树,非常不利于通用查询模型的开发。
mvc产品是微软继 form 之后又一顺应潮流的力作,其采用的razor模板引擎技术大大方便了开发者的开发,结合linq技术,使得c#在前端页面开发的便捷性上略胜java
structs一筹。
三、前端优化
在前端优化方面,我们也做了大量的实践。在采用cordova方案之前,参照html5的manifest缓存技术,我们开发了基于manifest的缓存框架,但是由于appstore禁止壳模式应用的上线,因此缓存模式只能在其他平台上予以实践。利用html5的manifest
callback技术,在下载缓存文件的时候更新进度条,利用css3技术制作进度条的进度展示。缓存内容包含js文件和图片文件。当
缓存结束之后自动跳转到相关首页。每一次更新缓存的时候需要更新缓存文件,客户端再次访问的时候会自动访问更新缓存。以保障客户端的随时更新。
缓存文件用例如下:
cache manifest
# version 1209
cache:
sipo/www_dc9_
js/
css/
network:
http://*
fallback:
/
jquery mobile与senchatouch等其他框架的不同在于,其采用分页结构。在页面间过渡跳转的时候会有闪屏的现象(android的闪屏现象比ios更加明显),由于这一特点,在使用的过程中,我们需要禁用其页面过渡效果。此外由于采用cordova架构,所有的rest请求需要ajax化,这也就要求所有的后端服务接口均需要采用json序列化输出。jquery mobile本身有许多不完善的地方,比如,没有内建的分页机制。列表在ajax重新载入的时候需要重新刷新等等。
四、后端优化
在移动端对于效率有较高的要求,因此我们采用httpfilter进行后端优化。全部数据传输采用gzip压缩传输,并且开启etag缓存方案,记录文件的上次缓存时间和缓存信息,根据文件的更改信息实时更新校验码。
校园卡充值与教师信息查询模块通过相应的rest json协议与其它数字校园应用进行通信,实时进行相关业务的操作,保证了实时性与安全性。校园地图模块中的图层使用localstorage进行分片存储,从而加快第二次访问速度,但由于uiwebview组件对缓存的支持不理想,因此该缓存方案在部分平台上未能生效。
五、未来与展望
给予jquery mobile的移动应用在用户体验上存在着一定的问题,与原生应用相比较有反应迟缓的弊端。随着数字化校园的进一步推进,在加大研发成本投入的情况下,采用跨平台的原生解决方案是未来的移动校园的必由之路,但随之也会带来后期维护成本增大等一系列问题。因此是保证用户体验,还是保证可用性是个仁者见仁智者见智的事情。根据美国数字校园移动应用的形势来看,采用超低成本的jquery mobile进行跨平台研发的仍然占了大多数。因此如何进行现有架构的改造,如何结合原生应用开发更适合更好的产品,是高校信息化需要一直探讨解决的问题。
版权声明:本文标题:基于Jquery Mobile数字校园移动应用实践论文 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1709774009a546097.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论