似乎是拿出了一个老的话题来说,在做开的的时候,我们是应该选择Ext,这是应该选择jQuery?
确实是一个老话题了,很多同行已经讨论这个问题很多了.
一直关注我的朋友会记得,在Ext 正火的时候,我推出了一个以Ext portal为基础,整合struts,spirng,hibernate的开源项目,很多朋友下载,配置,运行了这个项目,并通过各种方式就ext的使用进行了沟通.
怎么说呢?写完第一个不算完整的FaceYe ext版本后,我自己心里多多少少有些无奈.虽然说FaceYe做成了可配置的类似portal结构,但是使用ext做出的portlet离真正的portlet还是有很大距离的.
而最大问题,我觉得不在这里,就我们知道,Ext本身已经很臃肿了,使用Ext写东西,很少会直接去写Html,作为我来说,大多工作是通过直接与js脚本来做了,似乎正应了很多朋友热忠的one application one pae,确实,FaceYe可以说在用户界面上做到了这一点,同时页面的布局可以随意改变,页面上的模块可以随意添加,比如从最初的RSS模块,到后来的围绕RSS的订阅等服务, 以为博客等,都可以随意的去组装..这个过程,我所写的所有html代码,除了header里面加载进来的css/js外,留下的,几乎只有空空的body了.
一个朋友看了以后,说:靠,页面上的东西怎么出来的?
可能很多朋友也会这么说,随着我继续向下开发,功能越来越多,要加载的东西也越来越多的时候,我设计了另外一个功能,把所有要加载的 js路径写入数据,当需要加载的时候,再根据路径去加载指定的js,到后来,我自己甚至都分不清哪一个js对应哪一个功能模块了.虽然js有说明,有注视,但有时候我真的要去select数据库了.虽说用大量jsp来完成类似的功能或许也会出现这样的问题,但我觉得,混乱,在大量使用js,使用return null这样的action的时候,使混乱更加混乱了.
使用Ext带为的另外一个问题,是页面是只留下空空如也的body了,而这不是google这样的搜索引擎喜欢的,而我们使用Ext做的站点,也很难被搜索引擎收录,做seo,也不容易.看到过一个朋友使用Ext做的网站,从使用Ext的角度来看,真的是下了很大功夫,可seo,真的很艰难.
所以随着开发的不断深入,我发现,不能继续使用Ext进行所有的开发了,至少,不能大量使用Ext进行互联网应用的开发了.
总的原因
1.Ext体积太大(没使用GZIP超过153K)
2.大量使用Ext不利于网站做SEO.Ext的各种panel,包括Tab,Grid,Win,Form等等,生成起来很简单,大多只需要几句代码就可以了,可以不使用一句html,就可以生成出来一个漂亮的布局.虽然工作量少了,页面看上去漂亮了,可搜索引擎也发现不了网站了.得不尝失.
3.兼容.Ext虽然在兼容性方面花了很大功夫,但在某些时候,还是会偶尔展现出来一个意想不到的结果,令人渧笑皆非.
4.调试.虽然我们有很多调试工具可以使用,但有时候,真的不知道是哪里出了问题,新来开发的,更是一愁莫展.
所以到了后来,我开始寻找另外一种更为简单的式式来开发了.那就是jQuery.jQuery没有像Ext那里,提供一切你想要的,个人觉得 ,jQuery更专注于简化最基础的开发工作.所以使用起来,也就感觉更像是使用原始的js进行开发一样.而页面上的html结构,跟没使用jQuery以前,没有太大差别是.这对于网站开发来说,我觉得是一件好事情.
从使用Ext进行FaceYe的开发,到后来感觉到迷茫,试用YUI,再到选择jQuery进行实际的工作,一路走来,感觉,真的是爱恨交加.Ext简化了很多工作,让开发更简洁,更方便,但也带来了很多麻烦,给我们留下了更小的选择空间,YUI跟Ext,虽说不像Ext一样,但使用起来,到处是Ext的影子,似乎像一个刚刚分手的恋人一样,使用起来,太多无奈.直到开始使用jQuery,才感觉,又有了当初跨入IT行业的激情.
总之一句话,如果你做WEB,别用Ext,如果你做大的项目,或是压力较大的项目,最好别全部使用Ext.如果你的项目人员不稳定,只是极少数人懂Ext,别用Ext.