• 1.88 MB
  • 2022-04-22 13:47:44 发布

校内教学资源共享平台前端设计与实现毕业论文.doc

  • 36页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'校内教学资源共享平台——前端设计与实现校内教学资源共享平台前端设计与实现毕业论文目录摘要2Abstract31绪论61.1平台设计来源及研究意义61.2模块设计的内容61.3平台设计要达到的目标72模块分析82.1模块需求分析82.2开发技术路线92.2.1平台技术概述92.2.2前端技术概述92.2.3后端技术概述122.3可行性分析133模块概要设计153.1模块功能总体设计153.2模块流程分析153.2.1整体的流程分析153.2.2各用户流程分析173.3数据库概要设计204模块详细设计214.1模块功能详细设计214.1.1公告模块2135 校内教学资源共享平台——前端设计与实现4.1.2课程资源模块214.1.3留言模块214.1.4站内信模块214.2系统主要界面详细设计214.3数据库详细设计275编码调试与测试分析355.1设计实现中的问题355.2调试测试中的问题35心得与体会38参考文献39谢辞4035 校内教学资源共享平台——前端设计与实现1绪论1.1平台设计来源及研究意义设计资源共享平台的时候,是以学习资源(电子书类、音频类、视频类、软件类)的共享为切入点。满足学生之间的资源共享的需求。学生们每个人手里都会有一些资源,但是如果能降这些资源进行整合,并且共享起来,那么所有同学都将受益匪浅,本系统就是本着为同学提供高效的共享平台而开发的。系统以课程为单位,进行围绕课程的资源共享。同学们在寻找自己需要的资源的时候都是以课程为单位的,这样又能满足老师的教学需求。老师可以在自己的课程下面添加资源,同时也可以发布一些课程的公告。还可以进行点对点的站内信,可以说将资源的共享进行了细化。而且同学也可以进行资源的共享。但是我们已经有了一个BB平台,那你们做的那个资源共享平台还有意义吗?是很有意义。BB平台这种开放式的环境及对行业标准的适应性与协同性,为的是能够帮助教育机构实现互联互动的教学环境。而在我们学校师生对BB平台的使用情况大家都有目共睹,大部分的学生经常使用BB平台看一些老师发布的公告、老师的个人信息、课程的简介信息、下载一些相关课程的学习资料、将完成的作业上传到数字收发箱,而实际情况是很多学生都不是积极主动的使用BB平台;大部分的老师经常使用BB平台发布一些公告,上传课程的简介信息和要求以及课程相关的学习资料、查阅学生上传的作业,而可能是学校网络环境的问题,老师反映说有时上传的资料会出现问题。BB系统的确强大,但是好多功能其实已经几乎都不在使用了,而且和本校开发的其他平台整合的时候会比较困难,所以我们进行了这个平台的开发,值做资源的共享,而将这个功能的可用性做好。而对以后进一步扩充其他功能留有接口方便给整合其他的平台。1.2模块设计的内容凡是注册成功的用户登录到该平台后,都能够根据自己所属用户组的权限对平台上的系统公告、课程公告、课程资源、站内信、留言、用户、用户组等内容进行合法的操作(增、删、改、查)。35 校内教学资源共享平台——前端设计与实现1.3平台设计要达到的目标我们的目标就是希望通过大家的努力,能够让我们的这个资源共享平台成为一个以课程为中心,围绕课程的一个共享平台。在学校中实用和适用的平台,主要是面向全校的老师和学生,使其能够在自身受益的同时,还可以通过相互的交流使更多人受益。但是我们能够清楚地认识到要想达到这个目标会遇到很多困难,不论是在开发、测试过程中,以及后期的性能优化、管理与维护阶段,肯定会遇到很多技术上难题。35 校内教学资源共享平台——前端设计与实现2模块分析2.1模块需求分析目前平台默认有四个用户组,分别为:超级管理员组、管理员组、老师组、学生组。凡是注册成功的用户登录到该平台后,都能够根据自己所属用户组的权限对平台上的系统公告、课程公告、课程资源、站内信、留言、用户、用户组等内容进行合法的操作(增、删、改、查)。目前平台默认有39个操作,分别为:添加一个行为、删除一个行为、更改用户组行为、添加用户组、删除用户组、更换用户分组、更改用户信息、添加新用户到普通用户、删除用户、添加系统公告、更改系统公告、删除系统公告、添加任意班级公告、更改任意班级公告、删除任意班级公告、添加所属班级公告、更改所属班级公告、删除所属班级公告、添加留言、更改留言信息、删除所属留言、删除所有课程资源留言、编辑所有资源专辑、删除所有资源专辑、编辑自己资源专辑、删除资源专辑、发送站内信、删除所有站内信、删除自己所收站内信、上传资源无限制、上传资源2G限制、上传资源1G限制、上传资源500M限制、上传资源200M限制、上传资源100M限制、上传资源50M限制、上传资源30M限制、上传资源20M限制、上传资源10M限制。这些操作将会合理的分配给各个用户组,当用户进行相应的操作之前,都会对该用户所属的用户组的权限进行检测,确认其所拥有的权限并进行相关的操作,一下为各用户组的所持有的相关权限。超级管理员:查看、发布、修改、删除系统公告;查看、发布、修改、删除课程公告;查看、上传、下载、删除课程资源,上传资源大小限制;查看、发送、删除站内信;查看、发送、删除留言;查看、创建、修改、删除用户信息;查看、创建、修改、删除用户组信息,添加、修改、分配用户权限。(如图3.3所示)管理员:查看、发布、修改、删除系统公告;查看、发布、修改、删除课程公告;查看、上传、下载、删除课程资源,上传资源大小限制;查看、发送、删除站内信;查看、发送、删除留言;查看、修改个人基本信息,查看相关师生基本信息;查看所属用户组的基本信息。老师:查看系统公告;查看课程公告;查看、上传、下载课程资源;查看、发送、删除站内信;查看、发送、删除留言;查看、修改个人基本信息,查看相关学生基本信息;查看所属用户组的基本信息。35 校内教学资源共享平台——前端设计与实现学生:查看系统公告;查看课程公告;查看、上传、下载课程资源;查看、发送、删除站内信;查看、发送、删除留言;查看、修改个人基本信息;查看所属用户组的基本信息。2.2开发技术路线2.2.1平台技术概述后端整合Struts2、Spring2、Hibernate3框架开发多层架构的JavaEE应用。前端开发脚本方面使用JQuery框架为基础开发库,布局应用CSS。数据库开发使用Oracle11g。文件上传方面的通信协议主要通过HTTP、Flex内置协议、自定义协议三种方式实现。服务器环境为Linux(SUSE)操作系统。开发环境为Window操作系统。服务器使用Tomcat服务器。开发工具:MyEclipse。版本管理工具:CVS。2.2.2前端技术概述前端页面基于HTML4.0.1,CSS1.0的960栅格化进行设计,页面脚本架构基于jQuery进行开发。其中大量是用同源下的Ajax进行交互来增强用户体验。文件上传部分有部分功能基于Flex进行开发。其中大量使用了前端优化策略。对Ajax请求进行相应的安全优化。(1)栅格系统的设计原理及应用35 校内教学资源共享平台——前端设计与实现图2.1栅格计算示意图在网页设计中,我们把宽度为“W”的页面分割成n个网格单元“a”,每个单元与单元之间的间隙设为“i”,此时我们把“a+i”定义“A”。他们之间的关系如下:W=(a×n)+(n-1)i由于a+i=A,可得:(A×n)-i=W如以上原理,在本站的设计中,采用了类似如下960栅格设计:35 校内教学资源共享平台——前端设计与实现图2.2栅格化明细示意图(2)前端优化方案描述:① 减少HTTP请求,使用expires头② 采用gzip压缩组件③ 将样式表放在顶部④ 将脚本放在底部⑤ 禁止使用CSS表达式,简化css选择符⑥ 尽量使用外部的JavaScript和CSS⑦ 精简JavaScript代码⑧ 尽量不适用重定向⑨ 对JavaScript进行并行加载,对JavaScript使用预加载⑩ 进行图片的优化,合理的合并图层35 校内教学资源共享平台——前端设计与实现(3)JQuery是一个前端的框架,其是由javascript编写而成的,其中提供了很多的内置方法方便前端脚本的编写。而且之中内置了很多前端方面的性能优化,是的响应的减少了由于导入脚本库增加页面首次载入的下载量导致的页面的渲染速度问题。Flex是一种基于浏览器插件的技术,也就是说浏览器必须安装了adobe的flashplayer插件才能播放。也正因如此,它是夸平台的,不会因为浏览器对页面的解析不同而显示出不同的效果。本系统使用Flex主要是因为HTTP不能满足上传中大型文件的需求,如果用户有一个需求是这样的:想上传一个较大的文件,但是又不想安装客户端,而传统的HTTP方式又不可以实现,这是就要用到Flex上传。Flex方式可以上传300M一下的文件。2.2.3后端技术概述Struts2的简单处理流程如下:(1)浏览器发送请求;(2)中心处理器根据struts.xml配置文件查找对应的处理请求的Action类;(3)Struts2的拦截器链自动对请求应用通用功能,例如:WorkFlow、Validation等功能;(4)如果struts.xml配置文件中配置了method参数,则调用method参数对应的Action类中的method方法,否则调用通用的execute方法来处理用户请求;(5)将Action类中的对应方法返回的结果响应给浏览器。Spring的核心是IOC(控制反转)和AOP(面向切面编程),IOC是用来管理所有的业务对象,当你需要一个对象的时候它会帮你自动的通过Java的反射机制来创建,而不是通过以前传统的new的方式;AOP是允许在调用的方法前后附加另外的行为,可以为某一类对象进行监督和控制,从而达到对一个模块扩充的功能,这些都是通过配置类达到的。Spring目的:就是让对象与对象(模块与模块)之间的关系不通过代码来关联,都是通过配置类说明进行管理(Spring根据这些配置,内部通过Java的反射机制动态的组装对象),Spring的哲学是在不影响Java对象的设计的情况下将Java对象加入到框架中。Hibernate是一个开源的对象关系映射框架,它对JDBC进行了轻量级的对象封装,对Java类和关系数据库进行mapping,使得Java35 校内教学资源共享平台——前端设计与实现程序员可以随心所欲的使用面向对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,Hibernate还可以在应用EJB的JavaEE架构中取代CMP,完成数据持久化的重任。2.3可行性分析Linux+Tomcat作为服务器环境是非常实用的,Tomcat虽然不像Apache那样的高效,但是由于其内部没有jsp的环境,所以如果使用apache的话还要将Tomcat集成到Apache上,导致中间的转换,而且在内网的环境下,使用过于复杂的服务器环境没有意义,所以我们最终选择了仅适用Tomcat作为服务器。JQuery库的主要优点是方便开发,但是同时也会出现一个问题,就是在第一次载入JQuery的时候会给页面多带来300K的开销,会稍微减慢了页面的加载速度,但是这些开销其实是可以忽略的,因为即便是在外网中使用jquery库也不会对页面带来太多的影响,何况是本系统主要是服务于内网用户,而且当用户载入一次JQuey库之后就会在用户的电脑中形成浏览器缓存,在下次再使用的时候浏览器会自动的去取缓存里面的js文件,也就是说即便是对前端的性能有了一定的影响也只是影响了用户第一次访问本站的时候。而带来的好处是很大的,首先是提高了开发效率,其次是其包含了很多优化好的方法,可以大大增强代码的执行效率。Flex的跨平台性很好,其缺点也是在第一次加载的时候需要加载一个SWF文件,这个文件相对较大。但是同样这个在内网可以忽略不计,而且会形成浏览器缓存。同时带来的很多优点就是Flex带来的用户体验非常好,同时满足了上传中大型文件的需求。Struts2是一个MVC框架,主要用于将交互系统分解成模型(Model)、视图(View)、控制器(Controller)三个部分,这三个部分以最小的耦合协同工作,以增加程序的可扩展性和可维护性。概括起来MVC框架的优点主要有以下方面:(1)多个视图可以对应一个模型。按MVC设计模式,一个模型对应多个视图,可以减少重复性代码以及代码的维护量,一旦模型发生改变,也易于维护;(2)模型返回的数据与显示逻辑分离。模型数据可以应用任何的显示技术,例如,使用JSP页面、Velocity模板或者直接产生Excel文档等;(3)应用被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性;(4)控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起,完成不同的请求。因此,控制层可以说是包含了用户请求权限的概念;(5)MVC更符合软件工程化管理的精神。不同的层各司其职,每一层的组件具有相同的特征,有利于通过工程化和工具化产生管理程序代码。35 校内教学资源共享平台——前端设计与实现Spring既是一个IOC容器,也是一个AOP框架。Spring最好的地方是它有助于开发人员替换对象,有了Spring只要用JavaBean属性和配置文件加入依赖性(协作对象)。然后可以很容易地在需要时替换具有类似接口的协作对象。IOC允许创建一个可以构造对象的应用环境,在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务,IOC容器负责将这些联系在一起。在典型的IOC应用中,IOC容器创建所有对象,并设置必要的属性将它们连接在一起,决定什么时间调用方法。AOP让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。使用AOP后,公共服务(比如日志、持久性、事务等)就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。AOP的功能完全集成到了Spring事务管理、日志和其他各种特性的上下文中。Hibernate主要用于数据库的持久化(将普通Java对象映射到数据库中的关系实体)。优点主要有以下方面:(1)对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码;(2)Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化了DAO层的编码工作;(3)Hibernate使用Java反射机制,而不是字节码增强程序来实现透明性;(4)Hibernate的性能非常好,因为它是个轻量级框架,映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。35 校内教学资源共享平台——前端设计与实现3模块概要设计3.1模块功能总体设计系统分为7个模块(如图3.1所示)图3.1功能模块图页面的整体风格如下:图3.2页面整体风格图3.2模块流程分析3.2.1整体的流程分析35 校内教学资源共享平台——前端设计与实现凡是注册成功的用户登录该平台时,首先进行登录检测,主要是验证用户输入的用户名和密码是否正确。若验证成功,再对用户所属的用户组进行检测,从而进入相应用户组的操作界面;若验证失败,用户需要重新进行登录(如图3.2所示)。图3.3进入主程序区之前的流程图权限检验流程:图3.4权限检测的流程图35 校内教学资源共享平台——前端设计与实现默认分配的每个用户组拥有不同的权限(如图3.5所示):图3.5系统用例图3.2.2各用户流程分析进入相应用户组的操作界面后,根据该用户组所拥有的合法权限进行相应的操作。以下分别是超级管理员(如图3.3所示)、管理员(如图3.4所示)、老师(如图3.5所示)、学生(如图3.6所示)所能够进行的合法操作的流程图。35 校内教学资源共享平台——前端设计与实现图3.6超级管理员的流程图图3.7管理员的流程图35 校内教学资源共享平台——前端设计与实现图3.8老师的流程图35 校内教学资源共享平台——前端设计与实现图3.9学生的流程图3.3数据库概要设计根据模块的需求分析设计的E-R图中包括17个实体,包括:用户、老师、学生、用户组、行为、行为专栏、系统公告、课程公告、留言、站内信、班级、专业、学院、课程、专辑、专辑文件、专辑标签。实体之间的关系如图3.10所示。图3.10E-R图35 校内教学资源共享平台——前端设计与实现4模块详细设计4.1模块功能详细设计4.1.1公告模块用户可以发布公告,管理员可以发布系统公告,而教师可以发布课程公告,学生不可以发布公告,超级管理员拥有所有权限。经过权限的检验之后进入公告的主程序区。所有用户在登录之后都会看到系统公告,而所属课程用户会看到相应的课程公告。4.1.2课程资源模块所有人都可以上传资源到某个课程下,进入页面之后会有一个建议的上传接口,这里是应用HTTP协议上传的,也就是说只支持50M一下的文件上传,当点入之后会弹出一个用Flex应用写成页面,这里支持300M一下文件的上传。如果还不能满足用户的需求,那么用户可以下载客户端来进行大文件的上传。每一个文件都所属一个专辑,而专辑是属于某一个课程的。管理员有删除专辑的权限,教师也有删除专辑的权限。4.1.3留言模块用户可以某个资源留言,也可以回复这个资源的某个用户的留言,可以删除自己发过的留言,管理员可以删除留言,留言不可以进行编辑。4.1.4站内信模块用户可以点对点的发送站内信,站内信和某个用户关联,用户如果对方的学号的话就可以直接发送站内信,如果不知道对方的学号则可以选择所有和自己同一个课程的同学发送站内信。自己可以删除自己发送的站内信,管理员可以删除站内信。站内信无法进行编辑。4.2系统主要界面详细设计前端的主要风格都是参照了Google的主题页面来进行设计的,每个功能集成于一个小的功能块,而整个页面是几个功能块的集合。35 校内教学资源共享平台——前端设计与实现图4.1超级管理员主页面图4.2最新课程资源页面35 校内教学资源共享平台——前端设计与实现图4.3课程资源上传页面图4.4课程资源列表界面35 校内教学资源共享平台——前端设计与实现图4.5某一课程资源专辑列表界面图4.6超级管理员编辑课程资源界面35 校内教学资源共享平台——前端设计与实现图4.7用户管理界面图4.8管理系统公告页面35 校内教学资源共享平台——前端设计与实现图4.9添加系统公告页面图4.10发送站内信页面图4.11管理员主页面35 校内教学资源共享平台——前端设计与实现图4.12老师和学生主页面4.3数据库详细设计数据库中有19张表,包括:学院表、专业表、班级表、课程表、老师表、学生表、课程—基本用户映射表、行为专栏表、行为表、用户组表、用户—行为映射表、基本用户表、系统公告表、课程公告表、留言表、站内信表、专辑表、专辑文件表、专辑标签表(如表4.1~4.19所示)表4.1学院表(academe)列名数据类型可否为空说明idnamedescribevarchar2(20)varchar2(40)varchar2(100)nonoyes学院id(主键)学院名称学院描述表4.2专业表(major)35 校内教学资源共享平台——前端设计与实现列名数据类型可否为空说明idnamedescribeacademe_idvarchar2(20)varchar2(40)varchar2(100)varchar2(20)nonoyesno专业id(主键)专业名称专业描述学院id(外键)表4.3班级表(class)列名数据类型可否为空说明idnamemajor_idvarchar2(20)varchar2(40)varchar2(20)nonono班级id(主键)班级名称专业id(外键)表4.4课程表(course)列名数据类型可否为空说明idnamedescribeacademe_idvarchar2(20)varchar2(40)varchar2(100)varchar2(20)nonoyesno课程id(主键)课程名称课程描述学院id(外键)表4.5老师表(teacher)列名数据类型可否为空说明idvarchar2(20)no老师id(主键、外键),外键关联基本用户表35 校内教学资源共享平台——前端设计与实现nameemailquestionanswerphoneqqofficedescribevarchar2(40)varchar2(100)varchar2(60)varchar2(60)varchar2(20)varchar2(20)varchar2(40)varchar2(100)noyesyesyesyesyesyesyes老师姓名老师电子信箱老师问题(用于找回密码)老师答案(用于找回密码)老师电话号码老师QQ号老师办公室老师描述表4.6学生表(student)列名数据类型可否为空说明idnameclass_idemailquestionanswerphoneqqdescribevarchar2(20)varchar2(40)varchar2(20)varchar2(100)varchar2(60)varchar2(60)varchar2(20)varchar2(20)varchar2(100)nononoyesyesyesyesyesyes学生id(主键、外键),外键关联基本用户表学生姓名班级id(外键)学生电子信箱学生问题(用于找回密码)学生答案(用于找回密码)学生电话号码学生QQ号学生描述表4.7课程—基本用户映射表(course_user)列名数据类型可否为空说明35 校内教学资源共享平台——前端设计与实现idcourse_iduser_idnumber(10)varchar2(20)varchar2(20)nononoid(主键)课程id(外键)用户id(外键)表4.8行为专栏表(subject_actioncolumn)列名数据类型可否为空说明idnamenumber(10)varchar2(40)nono行为专栏id(主键)行为专栏名称表4.9行为表(subject_action)列名数据类型可否为空说明idnameactioncolumn_idnumber(10)varchar2(40)number(10)nonono行为id(主键)行为名称行为专栏id(外键)表4.10用户组表(subject_group)列名数据类型可否为空说明idnamerightnumber(10)varchar2(40)number(2)nono、uniqueyes用户组id(主键)用户组名称用户组权限级别表4.11用户组—行为映射表(subject_group_action)35 校内教学资源共享平台——前端设计与实现列名数据类型可否为空说明idgroup_idaction_idnumber(10)number(10)number(10)nononoid(主键)用户组id(外键)行为id(外键)表4.12基本用户表(subject_user)列名数据类型可否为空说明idpasswordgroup_idbasetypevarchar2(20)varchar2(30)number(10)number(1)nononono用户id(主键)用户密码用户组id(外键)用户类型,0:学生1:老师表4.13系统公告表(subject_system_bulletin)列名数据类型可否为空说明idtitlecontenttimeuser_idnumber(10)varchar2(40)clobdatevarchar2(20)nonononoyes系统公告id(主键)系统公告标题系统公告内容系统公告更新时间用户id(外键)表4.14课程公告表(subject_course_bulletin)列名数据类型可否为空说明35 校内教学资源共享平台——前端设计与实现idtitlecontenttimeuser_idcourse_idnumber(10)varchar2(40)clobdatevarchar2(20)varchar2(20)nonononoyesyes课程公告id(主键)课程公告标题课程公告内容课程公告更新时间用户id(外键)课程id(外键)表4.15留言表(subject_message)列名数据类型可否为空说明iduser_idreplyto_idtimecontentresource_idnumber(10)varchar2(20)varchar2(20)datevarchar2(400)number(10)nonoyesnonoyes留言id(主键)留言人id(外键)回复留言人id留言更新时间留言内容专辑id(外键)表4.16站内信表(subject_letter)列名数据类型可否为空说明iduser_idreplyto_idcontenttitlenumber(10)varchar2(20)varchar2(20)clobvarchar2(40)nononoyesyes站内信id(主键)发送人id(外键)回复人id(外键)站内信内容站内信标题35 校内教学资源共享平台——前端设计与实现statusnumber(1)no站内信状态表4.17专辑表(subject_resource_album)列名数据类型可否为空说明idbriefdescribecontentheadpicture_srctimetitlecourse_idnumber(10)varchar2(1020)varchar2(1020)varchar2(1020)datevarchar2(1020)varchar2(1020)noyesyesyesyesyesyes专辑id(主键)专辑简短描述专辑内容专辑图片路径专辑更新时间专辑标题课程id(外键)表4.18专辑文件表(subject_resource_file)列名数据类型可否为空说明idnamesrcresource_idnumber(10)varchar2(1020)varchar2(1020)number(10)noyesyesyes专辑文件id(主键)专辑文件名称专辑文件路径专辑id(外键)表4.19专辑标签表(subject_resource_tag)列名数据类型可否为空说明idnumber(10)no专辑标签id(主键)35 校内教学资源共享平台——前端设计与实现contentresource_idvarchar2(1020)number(10)yesyes专辑标签内容专辑id(外键)35 校内教学资源共享平台——前端设计与实现5编码调试与测试分析5.1设计实现中的问题(1)JavaScript的内存泄露问题,IE使用的GC算法是计数器,因此只碰到循环引用就会造成memoryleakage。后来一直觉得和观察到的现象很不一致,直到看到Eric的文章,才明白犀牛书的说法没有说得很明确,估计该书成文后IE升级过算法吧。在IE6中,对于javascriptobject内部,jscript使用的是mark-and-sweep算法,而对于javascriptobject与外部object(包括nativeobject和vbscriptobject等等)的引用时,IE6使用的才是计数器的算法。也就是说,IE6对于纯粹的ScriptObjects间的CircularReferences是可以正确处理的,可惜它处理不了的是JScript与NativeObject(例如Dom、ActiveXObject)之间的CircularReferences。所以,当我们出现Native对象(例如Dom、ActiveXObject)与Javascript对象间的循环引用时,内存泄露的问题就出现了。(2)Flex在交互的时候需要配置一个策略文件,来控制从哪个域下发来的请求时可以进行通信的。(3)在web.xml配置文件中要配置对Flex发来请求的监听,这样来区分Flex发来的请求,方法是对所有非Flex的请求加后缀名。5.2调试测试中的问题(1)flex.messaging.HttpFlexSession在Web.xml中加入这个配置来监听发给Flex应用的请求(2)Flex其实是不能实现超大文件的上传的,这是在Flex的官方文档里面写的,他最大的上传文件大小不能超过100M,而我们经过进一步的尝试最终能够满足300M一下的文件上传。(3)IEBug:① IE6双倍边距问题② 两个相邻浮动元素之间如果设置了margin那么在IE下会显示双倍的margin③ 35 校内教学资源共享平台——前端设计与实现3px问题不是经常被人们发现,因为它的影响只是产生3px位移,往往在大块的设计之间不易发现,但是如果在设计时使用精确到像素的设计方法的话,3px也许就会困惑到你的设计,还是先来看一下我们模拟的3px问题情况的xhtml与css代码。① IE捉迷藏bug(peek-a-boo),之所以起这个名称是因为在某些条件下文本看起来消失了,只有在重新装载页面时才再度出现。出现这个bug的条件是:一个浮动元素后而跟着一些非浮动元素,然后是一个清理元素,所有这些元素都包含在一个设置了背景颜色或图像的你元素中。假如清理元素砬到了浮动元素,那么中间的非浮支元素看起来消失了,隐到了父元素的背景颜色或图像后面,只有在刷新页面时才重新出现。② 断头台问题(IE/WinGuillotinebug)是国外的css设计者给这个问题起的一个非常形象的名字,就如同断头台一样,对象被无情的切断了一部分,不过与之相反的是,断头台问题中的对象切断的不是对象的头部,而是对象的底部。xhtml编码(演示),在IE中经常遇到这样的问题。③ 高度不适应,是当内层对象的高度发生变化时外层高度不能自动进行调节,特别是当内层对象使用(1)Spring接管Action为其注入:标签属性中加入scope="prototype"作用是:每次从spring容器中获取Action的实例时都会new一个新对象,即我们所说的原型,spring中scope默认值是单态(singleton),当然针对web应用程序,还可以配置为request、session等范围。至于什么时候使用什么权限范围就要根据应用程序的使用情况而定。比如在多线程程序中,单态是否会对程序有所影响就需要慎重考虑。35 校内教学资源共享平台——前端设计与实现心得与体会本次毕业设计首先给自己带来的是自身技术水平的提高,整个系统的设计的前端只是比较多。而在攻破各个技术难点的同时是自己的能力有了质的飞跃,而更重要的是在不断的学习的过程中培养了自身的学习能力和解决问题的能力,这个能力是在平时不曾得到很好的锻炼的。而且整个毕业设计是在团队和做的情况下完成的,这对自己的为人处世的能力也有一定的提高,如何团队成员很好的相处,能和团队成员协作完成一项工作。如何很好的分配工作,如何做到1+1>2。这都对毕业之后的工作打下了很好的基础。在开发的前期,主要是对一些框架的学习,对一些技术难点的攻破,这样能够在开发的时候更加顺手,然后面对具体的问题的时候对某点技术的深入理解,并解决问题。这个过程就是对技术的学习和深入的过程,可以说是受益匪浅。但是这也导致了整个开发周期比较长。但是正是这样的一个循序渐进的过程使得自己的技术水平不断的精进。同时,这种工作室团队开发的模式使得自己的知识面更加宽广,因为团队中的每个人的技术层面都不同,专精程度也不同,团队式的开发非常有利于学生们的知识共享,这样在不断专精自己领域的同时还能及时的扩充自己的知识面。而且在其中团队成员通力合作完成一件事是非常开心的事,成员的感情也在其过程中不断的加深。有这样的一个经历使得自己能够在以后的学习工作中更加得心应手,而这一年与团队成员一起度过的日子也是大学中最美好的回忆。35 校内教学资源共享平台——前端设计与实现参考文献[1]CayS.Horstmann(美)著.Java核心技术.第8版.机械工业出版社,2008[2]吴亮(月影)著.JavaScript王者归来.清华大学出版社[3]SteveSounders(美).高性能网站建设.电子工业出版社[4]BillyHoffmanBryanSullivan(美).Ajax安全技术.电子工业出版社[5]RossHarmes&DustinDiaz著.谢廷轩译.JavaScript设计模式.人民邮电出版社[6]AlistairCrollSeanPower著.袁菲、房向明、袁继彬译.网站性能检测与优化.人民邮电出版社[7]PaulHaine著.HTML+Mastery+Semantics,+Standards,+and+Styling.Friendsof,2006.[8]MichaelMorrison著.Head.First.Javascript.O"reilly.2008.[9]JohnResig著.Secrets+of+the+JavaScript+Ninja.MANNING,2009.[10]JeremyKeith著.Web.Design.with.JavaScript.and.the.Document.Object.Model.Friendsof,2005.[11]JohnResig著.陈贤安.陈贤安、江疆译.精通JavaScript.人民邮电出版社,2007.[12]GregGoralski&LordAlexLeon著.FriendsofED.Foundation.Flex.for.Designers.Friendsof,2008.[13]DaveCrane&EricPascarello&DarrenJames著.AJAX_In_Action.MANNING,2006.[14]JohnResig著.Pro.JavaScript.Techniques.Apress,2006.[15]亨德森(美).构建可扩展的Web站点.电子工业出版社35 校内教学资源共享平台——前端设计与实现谢辞感谢在工作室团队里面的所有成员,现在会经常想起和他们在一起讨论问题,解决问题场景,和他们在一起学习的日子真的非常开心,有机会一定会再和大家在坐在一起开发。感谢我的Teamleader,是他组建了我们这样一支团队,并处理团队的日常事务。特别感谢我们的指导老师李锡祚老师,老师为我们提供了良好的学习和开发环境,并经常关注我们的学习和日常生活情况,悉心解答我们的一些问题。由于找工作、实习等原因,导致其间一段时间没有全身心的投入到项目的开发中去,给老师带来了很多不便,而老师都给予了很大的宽容与理解,在这里对老师表达我深深的歉意。35'