返回列表

ER框架非常不错,值得推荐

默认分类 2012-02-23 22:21:22

百度的开源项目Tangram[http://tangram.baidu.com/index.html]是一套非常不错的轻量级框架,看来我的minJS也不用开发了,呵呵.但今天要讲的重点不是Tangram,而是ER框架.

ER是一个富浏览器端web应用的框架,适用于并能很方便地构建一个整站式的AJAX web应用。通过hash定位器和控制器实现Location->JS Object的映射,支持前进后退记录和URL敏感。 对数据加载和视图渲染的逻辑进行了抽象,提供基础Action以及UIAction的扩展。提供数据容器、状态保持、简易模板、权限管理等功能。通过适配器可以方便地切换UI库。

ER框架的特点: 1) 引入了模板的概念. 模板技术是实现MVC的基础, 是实现表现, 逻辑, 数据分离的手段之一. 常用的后端模板技术JAVA有velocity, freemarker; PHP有fastTemplate, smart; RUBY有Rails; Python有Django. 在前端使用模板技术可以有效地实现代码复用, 和页面组件化. ER框架中定义模板, 引用模板, 用@object和$string来实现变量替换. 2) 引入UI组件的概念 使用ui属性标识UI组件, 在解析过程中使用controlMap来作为UI组件的容器.

3) 基于location hash : ”#” 的url跳转, 支持前进后退记录和URL敏感 超链接和url又是密不可分的一对兄弟, 超链接的出现使得当初的Internet发展成为了现在意义上的万维网, 现在相当一部分搜索引擎都会根据url来判断网站的重要性;另一方面互联网发展至今, 基于url进行页面跳转已经成为一种用户操作习惯, 在ER之前的一些web框架这一方面做得不是很好. 4) 使用Action的概念, 一个action对应一个url 5) 使用context管理上下文, 存放页面数据, 分三个级别appContext,sessionContext,privateContext. 6) 将参数封装后进行传递,便于后期扩展 7) 使用JS命名空间 8) 使用统一接口和统一数据格式发送和处理ajax请求. Requester.post(url.info, params, callback); 9) 使用callback()来处理程序之间的顺序关系. CONTEXT_INITER_LIST中定义初始化接口之间依赖callback处理循环调用. 10) 使用tangram处理底层调用和字符串合并.baidu.format(“title: {0}, conten: {1}”,u[0],u[1]).