返回列表

ER框架优化

默认分类 2013-01-11 18:31:00

ER框架重构及解耦

前言

ER框架初学者入手比较难,了解了一下主要原因是各模块之间调用关系比较复杂,又缺少详细的说明文档。但这也不代表没有好处,以广告管家为例,竞争对手的投放端JS几乎是原版抄了我们的,但业务端却没完全照抄,后来从侧面了解了一下,据说是因为ER太难了,他们的FE看不懂, 最后放弃了抄袭。这充分说明了我厂FE的实力,另一方面也说明框架模块之间的调用也是比较复杂的。为了方便初学者能快速上手,后面会对框架各模块的接口API作一个详细说明,同时也会对一些调用复杂使用不便之处进行一些重构。下面会从主题功能,API接口说明,修改点及修改原因(包括设计约束)等几个方面对ER框架几个主要模块进行阐述。

ER框架功能描述

ER 是一个富浏览器端web应用的框架,适用于并能很方便地构建一个整站式的AJAX web应用。

ER 具有如下特性:

ER 依赖的Javascript library

ER 依赖于 Tangram base

ER框架优化

![](http://haiyang.me/ppt/er_workflow1.jpg "ER Workflow")

如上图所示, ER框架主要由以下几部分构成

  1. Locator模块检测用户行为或程序导致地址栏变化
  2. Router模块将请求转发给对应的的Controller类进行处理
  3. Controller类将映射到相应的Action类, 执行Action类enterAction方法
  4. Action模块负责调用和处理Model类及View迸行视图更新
  5. Model模块保存程序状态及其他业务参数
  6. View模块通过Template及UI Control构建视图
  7. Template模块解析和管理模板
  8. UI Control模块渲染视图, 捕捉用户行为传递给Action对象

Locator模块

模块功能描述

关于mode数据一致性很重要,前期也考虑过给每个控件增加自己的model,使用自下向上,即先控件自身,再父控件,再action,再全局 的方式取数据,在实际操作中发现,要维护较多model层级,控件之间的耦合度会有所增加 ,让控件自身决定是否拥有model或许会好一些,至于什么情况下需要,什么情况下不需要,后面会讲到。

控件主要分两类: 通用控件和业务控件。判断主要看两方面,1.是否会在多个地方用到,2.与业务场景依赖关系。一便来说,业务控件相对比较独立,对业务场景的依赖比通用控件要大得多,不管应用在哪里初始化条件差异不大,通用控件需要根据不同场景作相应的初始化。

标题1

标题2

Atx方式

标题1

标题2

标题6
  1. Item 1
  2. Item 2
  3. Item 3

无序列表1

这是一个引用, 这里木有换行,
在这里换行了。

内部嵌套

单星号 = 斜体 单下划线 = 斜体 双星号 = 加粗 双下划线 = 加粗

这是一个Inline[示例](http://equation85.github.com "可选的title")。