3 个人的小团队,一个负责 java 后台,一个实习,我负责前台。
之前的一个后台管理类项目,用的是 angular ,开发起来挺顺畅。但是也有一点小问题:
1.IE8 里在部分交互场景响应比较卡。
2.单页面应用访问首页的时候要把所有资源都加载好。
这两点在面对几十个用户使用的后台管理项目中还算可以接受。
现在一个新的项目,内部 OA ,用户数大概 3000-5000 左右。要参考以前的系统来做。
以前是多页面,以 iframe 的形式镶嵌在另一个网站中。界面交互也有很多弹出窗口(涉及到在线 office 文件的浏览编辑),感觉并不太适合用 angular 。
这两天也在看 react ,但是好像常用的组件好像没有 angular 丰富(比如 angular-ui )提供的那些。
而且还涉及到前端的数据绑定问题,好像还要使用 redux 之类的框架。
因为对 react 了解不深,请问我这样的需求应该如何选择前端框架呢?有没有其他的方案?
要不要考虑 java 后台的模板技术?谢谢
1
ixiaohei 2015-12-23 12:52:24 +08:00
建议不兼容 ie8 ,然后随便怎么选
|
2
clino 2015-12-23 12:53:46 +08:00 via Android
avalonjs 对 ie 支持较好
甚至之前说 ie6 都行 |
3
learnshare 2015-12-23 12:56:20 +08:00
放弃 IE 9 及以下,基本上什么都能用了
|
4
answeryou 2015-12-23 13:14:35 +08:00
针对交互性比较强的应用用 Angular 很合适,对于资源加载的问题你可以使用懒加载,你所说的问题并不是框架问题,还有针对你目前的团队资源, React 这一块也应该不是很熟,如果项目时间比较紧还是用原来熟悉的框架吧
|
5
ne6rd OP @ixiaohei
@learnshare 我们当然非常想放弃 IE8 ,然而很遗憾,起码 3 年内还是做不到的。内部使用环境,不是互联网可以挑用户。 @clino avalonjs 看了下,不知道性能怎么样。 angular 并不是不支持 ie8 ,只是部分交互上有卡顿感。 @answeryou 时间倒不是很急,大约有 1-3 个月可以用来准备。只是想用一个比较合适的工具来解决问题。 谢谢各位回复 |
6
crazyxin1988 2015-12-23 14:27:16 +08:00
用 jquery 不挺好的吗
|
7
ne6rd OP @crazyxin1988 jquery 的话需要大量的 dom 操作吧。我们在使用 angular 之前就是只用 jquery 。
代码写出来逻辑太混乱了。控制界面样式的和业务数据逻辑的都混在一起。 |
8
chairuosen 2015-12-23 14:53:15 +08:00
vue 大法好,搭积木一样想怎么用怎么用。
想跟 angular 一样用,就上 vue-router ,跟 angular 不同的地方是支持异步的组件。 还可以只把 vue 当库用, DOM 交互多的地方就套上 vue ,其他地方不用。 |
9
chairuosen 2015-12-23 14:54:25 +08:00
@chairuosen 刚看到必须 IE8 ,当我没说~~~
|
10
learnshare 2015-12-23 14:56:15 +08:00
@ne6rd 内部系统当然更有能力要求抛弃 IE 了
|
11
ne6rd OP @learnshare 我们只是外包方。。。大哥这一点您就不要纠结了
|
12
ne6rd OP @chairuosen vue 了解过,应该是很不错的。无奈 ie8 不支持 Object.defineProperty ,模拟的办法都没有
|
13
ne6rd OP @learnshare 增加了附言,我们也是有无奈的 [
|
14
hanai 2015-12-23 15:20:52 +08:00 1
react IE 8 没有问题,组件的话 ant.design 不错
|
15
chairuosen 2015-12-23 15:28:09 +08:00
"所以如果要淘汰 ie8 ,不仅仅是淘汰浏览器,更要淘汰操作系统了"
这句话不对啊,强制安装 chrome 就完事了 |
16
ne6rd OP @chairuosen 前面有说了,因为密钥控件只支持 IE 系列。我们又没有能力去开发一个非 IE 内核的控件出来。
所以即使淘汰 IE8 ,也只能往 IE9-11 的方向发展。 然而 XP 最高只支持 IE8 。。。。。。 |
17
chairuosen 2015-12-23 15:33:32 +08:00
@ne6rd soga ,变态的甲方
|
18
taoche 2015-12-23 15:34:42 +08:00
1 :你们的情况并不适合用 react ,不说 reat 开发效率不高,且选择 react 就面临被迫选择 react 的生态圈,对你们这个团队来说还是影响很大的。
2 :继续 Angular , Angular 1.5 版本之后 除了 dirty-checking 以外,已经没什么特别大的硬伤了。 至于你们的问题: 问题 1 : 响应比较卡,我不清楚是「渲染」比较卡,还是 「交互」比较卡,这些虽然不能彻底解决,但都可以缓解。比如 惰性渲染 html 片段,不使用 操作 DOM 方式的动画,以及可以用 immutable 减少内存开支 问题 2 : 其实 SPA 并不用 在首页把所有资源都准备好,还是可以以 page 为颗粒去加载,无论你用 什么模块加载器都可以解决这个问题。配合好 过度动画,其实很好解决。 注:虽然 Angular 性能不高,但更多时候是开发者自身使用不当。 虽然可以提高 IE8 的性能,但是想做到 足够流畅 是非常困难的 |
19
ne6rd OP @hanai 感谢,看了感觉挺不错的。而且风格偏紧凑,适合一些国人的习惯。
不像 bootstarp 那样大行距,大留白了。 |
21
chemzqm 2015-12-23 15:52:20 +08:00
最好不用框架,维护起来比浏览器 bug 还要坑。。
|
22
learnshare 2015-12-23 15:57:04 +08:00
@taoche IE8 的卡可能并不是优化代码就能解决的,毕竟许多年前的前端没有那么复杂的代码,那个时候的浏览器没有支撑现代前端代码的性能
|
23
ne6rd OP @taoche 谢谢指教。
1.如果一个团队对 react 和 angular 熟悉程度相近的情况下, react 开发效率没有 angular 高? 2.angular 优化我们确实做的很不够。主要是有这个担心: ie8 在仅仅使用 jquery 做交互的时候还是可以达到丝般顺滑的。用了 angular 虽然开发方便了,但是使用体验却打了折扣,而且即使花了一些手段去优化了,也仅仅是打到一个可用的水平,感觉投入和回报也有点不成比例。所以在想 react 这种机制完全不同的,能不能从根本上解决 ie8 的问题。 |
24
taoche 2015-12-23 16:02:13 +08:00
|
25
ezreal 2015-12-23 16:03:54 +08:00
|
26
ne6rd OP |
27
taoche 2015-12-23 16:06:10 +08:00 1
@ne6rd 熟悉 react 不难,难的是在它那套生态下都掌握的很好。
这么说吧,我们现在在用 react + nw.js 以及 react 周边的那些东西 开发一个 IM 系统。 我同事都说 如果用 Angular 开发的话 估计只要用到现在 1/2 甚至 1/3 的时间。(业务场景可能不能拿来类比,仅从参考。 可能也是我们比较水) |
28
ne6rd OP @taoche
嗯,明白您的意思。 主要这个 OA 项目,是对历史项目的重构+更新功能。 历史项目并不是我们开发的,前端是 jsp 页面混杂着 java 代码。虽然非常难维护,但是性能还是非常不错的(丝般顺滑)。 如果我们重构之后,使用体验反而变差了,就有点本末倒置了。 |
29
gouflv 2015-12-23 16:24:00 +08:00
如果 ng 不适合的话, react vue 这些类似方案也不太需要考虑了
只剩 Backbone + Marionette |
30
baby4free 2015-12-23 16:24:26 +08:00
jQuery+template 吧。。。。
|
31
ne6rd OP @taoche
其实考虑 react 也是有一点自己的私心。不满足于只会使用 angular 。 现在 react 这么火,也想实际尝试一下。如果真的应用到生产环境的话,学习到的东西肯定是很多的。(当然会有一定风险) |
34
hienchu 2015-12-23 17:08:45 +08:00
最近刚撸了一个 React 的小项目,前期熟悉需要一些时间,但是开发效率个人觉得比 Angular 要高。 React 虽然没有 jQuery 那么快上手,但是性能上绝对是秒杀的。还有就是, React 的模块化对于后期的改动真的是很方便。
|
35
jun0205 2015-12-23 18:45:19 +08:00
前段时间一直在尝试各种前端框架,有个必要条件是支持 IE8 ,不支持 IE8 的都略过。
主要尝试了 angular, avalonjs, react, mithril 这几个。 最终选择的是 angular 做后台管理系统, mithril 做前台用户系统。 angular 在 github 上面有一个第三方的对 IE 8 的支持,选用的是 1.4 和 ui-bootstrap 0.12.1 支持 IE8 的版本。 angular 的资源太多了,有什么问题都能快速的找到,还有良好的 UI 测试 protractor 。后台也不需要太高的性能要求。 avalonjs 这个我写 demo 的时候就遇到坑了。没有好的项目结构生成方案。还有现在是 1.4 和 1.5 两个版本存在,如果选 1.5 的话相关的 mmRoute 都没发很好的配合使用,官方也没文档。 react 和 mithril 模板 mithril 真心比 react 简单多了,官方的性能测试也比较好,也可以对 IE 8 支持,也是我们需要的, react 过于庞大很多都不是我们需要的, mithril 简单,需要的基本功能都有了,只是第三方插件不多,还问题多,最近天天在加班改。 要是公司项目最好选资源多的,遇到问题可以马上解决。 |
37
banricho 2015-12-23 20:26:21 +08:00
这种有 IE 的需求那就 Avalon.js 吧
之前这里有个项目也是这么做的…非 IE 需求的话就不用它了 |
39
mgcnrx11 2015-12-23 23:22:20 +08:00
我倒觉得,从密钥控件上着手会更好,研究改造成支持 Chrome ,其实应该就是做一下桥接的就行了吧,我猜。因为目前的某局级项目,就正是通过此方法全面支持 Chrome ,抛弃 IE 了
|
40
narukow 2015-12-24 00:23:50 +08:00
这种后台 OA 类系统的开发,最重要还是在于有没靠谱的 UI 库吧。我为新项目找前端框架也把几个主流框架看了遍, avalon 有 oniUI (但看介绍感觉太月厨中二爆表放弃了=_=); vue 看起来很棒,但没 UI 库放弃了;最后选了 ant.design 来尝试,组件数量和成熟度都挺高了,更新也活跃,但目前好像还是小范围内试用,一想到前面好多坑没被人趟过就好忐忑。。。
|
41
chairuosen 2015-12-24 01:05:17 +08:00
|
42
zluyuer 2015-12-24 02:21:21 +08:00
可以使用 ui-router 替代原生路由,并配合 ocLazyLoad 按需加载资源,解决问题 2
https://github.com/angular-ui/ui-router https://oclazyload.readme.io/docs/getting-started |
43
arzusyume 2015-12-24 09:36:15 +08:00
1.比较卡没有啥通用解决的方法只能针对具体业务去一点点优化少做 watch
2.angular 也可以基于模块做异步加载, 多个 js,css 需要合并啥的可以丢给 web-server 去做热打包 |
45
ne6rd OP |
47
zonghua 2015-12-25 03:16:58 +08:00 via iPhone
干嘛不用 Easy UI
|