首页 热点资讯 义务教育 高等教育 出国留学 考研考公

相比Angular,Avalon有什么缺点

发布网友 发布时间:2022-04-26 19:58

我来回答

1个回答

热心网友 时间:2023-10-26 12:08

  苏宁刚上线的公有云平台管理控制台用的是AngularJS,选择它的原因有两个层面。

第一个层面是这类系统本身是适合单页应用的,我所见到的每家云平台都是这样的方案,青云用的backbone,阿里云也是angular,那么,为什么这类系统就适合单页应用呢?

我举个极端点的例子,比如你在某个页面上有个超级耗时的操作,上传文件,或者远程创建虚拟机,界面上会需要有个东西提示你正在上传的百分比,或者正在操作的远程资源状况,这时候,如果你不是单页型系统,是不太敢切换到其他功能页面去做操作的,因为一切换,这个可能就刷不回来了,除非用iframe之类变通方式,当然那也算一种单页的方式。

单页之后,每个功能页的切换都很迅速,之后的操作基本都只有很小的数据请求,使用起来会是比较流畅的。

而且,这类系统主要处理的东西是增删改查,表单表格,显示隐藏,没有更花哨的东西,也非常适合模块化,分层化,数据绑定。

第二个层面,为什么在这些框架中,选择angular,这个其实还是看用的人,就像要杀个人,每个人有擅长的兵器,刀*剑戟,斧钺钩叉,怎么顺手用什么,框架就是个工具。

从人员技能的角度看,苏宁的多数开发人员都是偏Java的,以JavaScript作为主要开发语言的人员非常少,但如果要做单页应用,JS技能是必备的。那么,从实际操作的角度,怎样让这些人去学习Angular呢?

注意这些人平时写Java都比较熟练,比如他会知道写代码要分层,那前端架构师可以给他把代码作一下划分,比如,那些专门做数据请求的JS代码,写成单例的service,类比成Java中的DAO层;那些作视图模型用的JS代码,就是控制器,类比成后端的控制器。这么一来,他就很容易理解这些概念了,然后依赖注入的东西跟他稍微一解释,也就明白了。

一些AngularJS的实践中,会推荐把控制器搞得干净一些,跟视图状态相关的提取成指令,但我感觉,宁可不要这么拆,因为指令这个东西最容易引起初学者的困惑,先不要鼓励他们去用,暂时在控制器中写状态函数,比如控制选中行样式的。

这么一整之后,主要的工作量就变成调整界面了,这一块可以让专门的人做,我们的开发人员在基本不具备JS开发经验的情况下,也把绝大多数JS代码写掉了,就是因为他们所做的,完全没有操作DOM,对于从未接触过前端开发的人来说,他们其实不害怕写JS本身,怕的是DOM操作,AngularJS很成功地在团队成员JS能力不足的情况下,让Java开发人员把这部分较好地写起来了。

另外一个大问题,就是控件的整合,这是个难点。我的建议是,一旦你用了AngularJS,干脆就完全忘记jQuery和它的插件体系,尽量都自己写,万不得以的情况下,也不要把引入的东西放在主界面作用域,而是通过iframe等方式引入,比如上传文件可以放在单独的iframe里,通过postMessage跟主界面交互。

通常,业务逻辑不是特别多的情况下,我们对首页的载入不必特别优化,可以把所有业务JS全部打包成一个,我们目前版本的业务JS合并压缩后共计220K,是首页一次载入的,除此之外只引入了angular自身,以及路由这两个js。

如果项目中要使用第三方图表库怎么办呢,对这些部分单独做动态载入,这样基本就能保证整个系统的首页负担不至于太高。

大的方面就这些,细节还是有很多考虑点的,没法一一写,自己体会啊。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com