《ext项目经验文档.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《ext项目经验文档

最近也终于使用ext做了一个小的web项目。第一次使用ext做项目毕竟经验不足,仅记下一些开发思路和需要注意的地方。 ? Ext Js 2.2+Spring 2.5,没有使用struts,hibernate ? 1)目录结构 a)js部分 根目录下建立/js/ext/目录,存放所有和ext相关的js文件。/js/ext/目录下可建立ext相关子目录 /js/ext/adapter/ — 存放适配器jquery,prototype,yui。。。 /js/ext/experimental/ — 存放ext一些未正式推出的组件,可参考ext开发包examples例子部分。 /js/ext/plugins/ — 存放ext扩展组件,例如ext的patch文件,ext主题,扩展组建等等。 /js/ext/resources/ — 不用说了,ext开发包中的resources目录直接拷贝。 /js/ — 目录下可以放一些最常用 的js文件。 /js/ext/ — 目录下放置ext-all.js,ext-base.js,ext-lang-zh_CN.js,ext核心文件; b)模块部分 根目录下建立/module/文件夹,每个模块在/module/目录下新建文件夹,例如: /module/comment/ — 评论模块 /module/stat/ — 统计模块 每个模块目录下新建js目录存放当前模块需要引用的js文件,例如/module/comment/js/comment.js 为简化开发不使用struts,直接使用jsp代替struts;每个模块下新建action.jsp替代structs接受 ext ajax请求,action.jsp不负责页面的显示。只负责service层方法调用及请求跳转。 c)权限部分 根目录下直接建一个security目录完事。 2)基本布局及权限 border布局,center区域使用TabPanel组建增加新的iframe窗口装载系统不同模块。 暂不在意iframe的效率问题,尽可能做到每个系统模块+UI部分的独立。 初始化布局时TabPanel组件中添加默认的欢迎登录页面,解决TabPanel组件添加新窗口时高度增加的bug。 权限系统设计参考spring security建议的数据库设计,项目后期可与spring security整合。 3)用户访问超时 解决两种情况下的用户访问超时。 a)普通http请求的session超时。 b)异步http请求的session超时,使用ext后大部分的界面刷新都是异步的ajax请求。 不管是那种类型的http请求总是可以由一个过滤器来捕捉。 分类:普通http请求的header参数中没有x-requested-with:XMLHttpRequest头信息,而异步的有。 其实对于常见的ajax框架,header中还有标示自己身份的header信息。 对于普通的http请求,发现session超时后直接重定向到一个超时页面,显示访问超时。 对于异步http请求,发现session超时后则向请求的response中写入特定的超时头信息,客户端ajax对象检测 头信息,发现有超时状态标志后调用显示超时信息的javascript方法,提示用户访问超时。 ? 服务器端session超时后在过滤器中为response添加新的头信息,标记该请求超时: Js代码 if(r.getHeader(x-requested-with)!=null??? ?? ?????r.getHeader(x-requested-with).equalsIgnoreCase(XMLHttpRequest)){?? ?? ????response.setHeader(sessionstatus,timeout);?? ?? }?? if(r.getHeader(x-requested-with)!=null r.getHeader(x-requested-with).equalsIgnoreCase(XMLHttpRequest)){ response.setHeader(sessionstatus,timeout); } ? 使用Ext.Ajaxt对象完成异步请求的交互,Ext.Ajax是单实例对象(非常重要,全局单一Ext.Ajax实例!)。 注册Ext.Ajax的requestcomplete事件,每个ajax请求成功后首先响应该事件。在该事件的回调函数里面判断 访问请求是否超时。使用Ext.Ajax对象的好处是,只需要引入一个包含了几行超时处理代码的js文件,就可以 为当前应用增加超时处理功能,原有代码不需要做任何修改。 ? 使用Ext.Ajaxt对象完成异步请求

文档评论(0)

lisufan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档