锁定老帖子 主题:如何开发又炫又高效web程序
精华帖 (0) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-17
开发稍微复杂的项目Flex还是存在性能问题的, 之所以这段时间一直用Extjs, 就是为了重写之前的一套Flex+Weblogic Portal的系统. Look&Feel(自己定制,有专门web designer设计)看上去并不输于Flex, 性能要优于Flex 内嵌其他的东西也比较灵活(例如EJS TreeGrid处理大数据量), 但是你提到的支持多浏览器的问题, 还是很让人头疼的, Extjs官方称是跨浏览器的, 虽然大部分是没问题, 在有些细微的地方还是有所不同, 为了这些细微的差异,费了不少的周折, 跨浏览器方面不如Flex. Flex在影音处理方面是无与伦比的, 再做复杂逻辑的web项目性能方面有待提高.
skyfen 写道 开发又炫又高效web程序,哪就用flex
我们以前也考虑过用EXT,项目组中最终决定用了Flex,项目成员中有些人曾经用Ext做了些项目,Ext有些功能在各个浏览器中有些功能也会有表现不一致。而且出了问题比较难调试,代码可读性不是很好。用flex易用性,代码可读性强,特别哪些学过java的,更容易上手不说,对于程序员来说,做出的项目既炫又高效程序,flex是不错选择。 我们在做国家食品安全备案系统,这个系统是全国所有城市、县级、乡政级都用的一个系统也是用flex开发,数据库Oracal,开发语言python.一天访问量大得惊人。效果表现力,用户体验方面反应比较好。 最近发现一款,国产的js框架,类似于Ext,这个框架longboo,用了一段时间,还不是很成熟,在IE上表现有点小问题,新版本肯定会修复的;在firefox表现很好,不过总体感觉还好。最重要的是界面要漂亮。对程序员来说要简单易用,速度快。也确实比Ext容易上手些。 JS框架总的来说,表现上还是没有flex哪么帅。JS框架受限于各种浏览器兼容Javascript版本的支持程度,所以也会有表现不一的情况。JS框架的官方也只会对几种主流浏览器测试兼容性,也难针对它们做到非常全面的测试,或多或少表现出差异也是情有可原的。用flex就不会出现浏览器兼容的问题,但是要求安装flash player插件。目前来说95%的电脑都装有这种插件。sliver light也在电脑安装率非常低。 现在adodb flash,sliver light html5 竞争很激烈,html5传说很好,也是趋势,但是要到2022年才能出标准。时间哪么长,现阶段最实用的莫过于flex。html5即使标准出来,flash也不一定就会退出市场的,flash,sliver light 只会更加丰富互联网,要说谁取代谁,哪还很难说。 |
|
返回顶楼 | |
发表时间:2010-12-17
smallsnake 写道 何必那么多的插件
简单一点:Flex + Ejb3 你不需要用Life Cycle(for flex3) 或 FDS(for flex2) ? |
|
返回顶楼 | |
发表时间:2010-12-17
bitray 写道 如果数据量真的很大,又不是外网访问,用applet嵌入吧。呵呵
java作为重量级解释器能够缓解很大压力。外网会比较辛苦 Java web start? 有这样的项目,其实就是swing(或者引入其他ui). 看上去不是那么美观, 可以应用的组件也太少..这种方式不合适当前的web项目. Reverse Ajax出现之前, 有个ServZone的产品, 用这种方式做Push, 曾经很流行. |
|
返回顶楼 | |
发表时间:2010-12-17
从YUI用到EXT目前的版本,说实话有过辛酸,总的来说比目前最新版本的EXTJS还是满意的。
|
|
返回顶楼 | |
发表时间:2010-12-17
LoriSun 写道 smallsnake 写道 何必那么多的插件
简单一点:Flex + Ejb3 你不需要用Life Cycle(for flex3) 或 FDS(for flex2) ? 在你研发新框架的时候世界上出现了个东西叫Blazeds... 而且flex的DataGrid给1000条数据不分页是一点问题都没有的。 ExtJS的速度不在可接受范围内。 |
|
返回顶楼 | |
发表时间:2010-12-17
ExtJs的性能问题,之前没有什么体会,但是在项目中还是遇到了这样的场景,在一个大的编辑页面,大概有100+个字段,当然有些字段是自动填充的数据,还有几个Grid做为子表的编辑,这些控件在一个界面里,这个时候加载显示的时候会很慢,最后还是屈服了,使用了JSP来代替之前的代码,我始终觉得这个是控件数量太大的问题,ExtJs很多都是在运行时来render的,那么这个时间可能会很长,很难避免,就像有位仁兄说的,毕竟出效果要付出代价,时间换效果,空间换时间这些东西可能都是我们要把握的东西吧。
|
|
返回顶楼 | |
发表时间:2010-12-17
基于Qikioffice的程序有几个个问题:
1、就是当程序多了以后,js是初始化页面的时候加载还是动态加载,如果是动态加载,那么实现同步和异步加载的机制? 2、当一个页面中comboBox,form,grid等控件多了以后,打开一个程序时需要产生数个Ajax连接,这样反而给服务器增加负担,这个问题也需要解决。 3、在编写代码过程中,团队成员对Ext的掌握程度不同,也会出现内存未释放积累时间长了以后越来越慢,单个程序崩溃导致全局崩溃,乱用全局变量等问题。 |
|
返回顶楼 | |
发表时间:2010-12-17
tianzhou0374 写道 基于Qikioffice的程序有几个个问题:
2、当一个页面中comboBox,form,grid等控件多了以后,打开一个程序时需要产生数个Ajax连接,这样反而给服务器增加负担,这个问题也需要解决。 这个其实是Ajax中普遍遇到的问题,但要解决也不难,需要实现一个请求队列管理器即可:多个请求合并到一个请求中,请求完的数据再在前台拆分 |
|
返回顶楼 | |
发表时间:2010-12-17
云和山的彼端 写道 LoriSun 写道 smallsnake 写道 何必那么多的插件
简单一点:Flex + Ejb3 你不需要用Life Cycle(for flex3) 或 FDS(for flex2) ? 在你研发新框架的时候世界上出现了个东西叫Blazeds... 而且flex的DataGrid给1000条数据不分页是一点问题都没有的。 ExtJS的速度不在可接受范围内。 好长时间没做Flex的东西了, 这个东西之前没用过, 这个东西优势在哪里呢? |
|
返回顶楼 | |
发表时间:2010-12-17
tianzhou0374 写道 1、就是当程序多了以后,js是初始化页面的时候加载还是动态加载,如果是动态加载,那么实现同步和异步加载的机制? 当然动态加载, 并且动态加载的js是经过JAWR 压缩处理过的. 可以用JIT或者Jquery也有类似的功能, 在加载成功之后可以调用一个callback方法,这样用到什么就加载什么,感觉非常不错的. 这个问题跟qwikioffice没什么关系, 做大量js的web都适用. 举个例子: 如果你用过Extjs, 其中TabPanel的每个Tab我们可以做成不同的模块, 在你切换tab的时候tabchange : (TabPanel this, Panel tab ), 先去下载这个tab下用的js, 下载成功之后加载这个tab的内容. tianzhou0374 写道 2、当一个页面中comboBox,form,grid等控件多了以后,打开一个程序时需要产生数个Ajax连接,这样反而给服务器增加负 担,这个问题也需要解决。 这是请求策略问题, 什么时候发请求, 每次请求多少东西, 按照你系统的需求和server性能合理规划策略就是了. tianzhou0374 写道 3、在编写代码过程中,团队成员对Ext的掌握程度不同,也会出现内存未释放积累时间长了以后越来越慢,单个程序崩溃导致全局崩溃,乱用全局变量等问题。 这是个问题, Extjs新版本中资源回收方面已经有了很不错的改进. 再有就是从写代码方面注意, 在满足需求的时候尽量缩小你对象的范围. 自己扩展的组件, 留意下 destroy : ( Ext.Component this ) 这个方法的应用. |
|
返回顶楼 | |