校园平台之在线考试系统的开发也进行了一个多星期了,到目前为止,已经算是完成三分之一了吧,因为其中有些内容是已经做过的,直接拿来用就ok了,不过也正是因为这个,才有了昨天的一段艰辛。
进入开发以来,就像先前说的一样,整个开发流程使用的也比较清晰了。数据库设计,界面设计,UML图,代码。按部就班,慢慢的在前进。
不过其中数据库的设计依然是重中之重,数据库设计的合理,后来开发就会轻松很多,如果设计的不合理,也就要费很多力气了。到现在为止,感觉我们的数据库设计虽然不算合理,但也没有出多大问题,算是介于合理和不合理之间。
再说关于页面架构的设计(我觉得叫页面架构比较合适,貌似网上有这个词),首先我们采用的是母版页,所有的页面(主要是后台管理部分)将会继承母版页。关于使用母版页的好处就不说了,就像是类的继承一样,子类可以拥有父类的可继承的属性和方法。对于类的设计来说应该是比较合适的,可以减少很多代码,但是对于页面设计来说就不是那么回事了。
因为整个页面都是通过浏览器加载进来的,需要同服务器进行交互,如果说你使用母版页,这意味着你在打开两个不同页面时(采用的同一个母版),你要重复加载相同的部分。这样就加大了页面同服务器交互的传输量。最好的解决办法就是使用局部页面回传,也就是使用异步传输机制。
把所有页面共同的部分或者不需要在某一按钮点下进行提交的部分不进行提交,这就需要用到Ajax技术来实现局部页面回传。
再回到我们这个系统,因为以前开发的后台使用的母版页,所以直接就把原来的页面代码拿过来使用了,复用了菜单和标题部分。结果等到了我把大部分功能页面处理的差不多了,想把母版页样式处理一下,才发现不好进行复杂的页面处理。(可能是个人技术不够吧)
因为页面的样式使用js来处理效果会更好一些,但是用js来处理后台数据的话就会比较复杂(目前还不太会 ^ . ^!)
说到js就得说说昨天我在对母版就行改造时遇到的问题了。
本来是想用JQuery做一个可以折叠展开的菜单(在母版页),做完之后发现有些地方需要改进。就是我点下某一个菜单项之后我需要告诉用户当前正在操作的是哪个功能吧,所以需要处理一下效果,但是通过JQuery处理完之后发现页面整个一回发,又重新加载了,所有效果都没了。
于是开动脑筋,想了N多种方案,比如说把数据先发到session中,通过JQuery处理session;比如通过iframe来完成异步操作……
最后发现这几个方法都行不通,用JQuery处理session的操作好像没有,用iframe的话就需要把母版页都取消,这个工作量就太大了。
最终采取的办法就是上篇博客写的那些代码,通过页面加载时判断当前加载的网页文件名(前提是菜单选项的class属性是以菜单名命名的),然后通过JQuery操作css样式完成预定效果。
总结:项目开发的重点一个是关于需求业务的理解,第二个就是关于整个项目的架构设计。这些都要尤其注意,要不后期的工作就不好做了。
在线考试系统开发进行时
最新推荐文章于 2024-03-01 22:41:34 发布