- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
从Enyo看移动Web应用框架设计
Enyo是一个来自Palm的Aries项目的JavaScript开发框架,它所关注的方向是一般的程序框架所关注的封装性、复用性和可维护性。
历史
EnyowebOS发布的开发框架。
Enyo 1.0发布于HP TouchPad的webOS之上,它是依赖于WebKit的开发框架。因为一些历史原因,Enyo 1.0的授权仅限于webOS中使用,并没有使用开源协议。
Enyo 2.0则是一个跨平台的框架,它现在已经在github以Apache 2.0协议开源。
如无特别强调,本文后面所述的EnyoEnyo 2.0框架。
核心概念
如EnyoEnyo的核心是一种封装模型,让使用者能够更容易地复用和维护。在这一点上,Enyo更倾向于一个传统程序设计领域的框架。它所关注的方向是一般的程序框架所关注的封装性、复用性和可维护性。
与EnyoJS框架设计的核心思想则显得不那么“程序员思维”,比如jQuery的设计理念是:Write less, do more。
jQuery
Enyo的设计理念是将程序分解为一个个的Component(组件),Component又能够由其它的Component组成。Enyo是一个立足于UI的框架,但它的Component理念并不限于UI组件。
Enyo这样的设计非常适合较大的工程,这跟传统的Web前端项目理念有些不同。很难想象一个网页会由很多工程师共同完成。而Enyo认为基于Enyo开发的应用程序,可能需要更多工程师来进行合作。
总体而言,从Enyo
Enyo的设计目标:Web、移动、应用
EnyowebOS上,这决定了它的设计目标离不开Web、移动和应用三个关键词。
毫无疑问,webOSHTML+JS的开发方式很大程度是看中了已有的网页前端开发工程师资源。经过多年的发展和磨合,现在网页开发已经是一个非常成熟的技术环境了,这其中有着由设计师、工程师、产品经理等不同人才组成的完整的生态系统,大部分企业的开发流程也已成熟。尽管拥有JavaScript这样图灵完备且具有相当抽象能力的编程语言,网页与应用之间仍然有着不小的差距,而Enyo的设计目标之一就是尽量弥合这个差距。
为了与同类产品竞争,Enyo
Enyo的编程模型中基本抛弃了HTML语言本身,而主要使用JavaScript和DOM API来编写图形界面。Enyo选用JSON来代替HTML作为界面描述语言,这样既保持了方便的程序访问性,又保证界面编写难度不会过高。
JSON描述界面这种做法在传统的JS框架中有成功的先例,其中最为著名的当属ExtJS,Enyo选择这一做法很可能借鉴了ExtJS的成功经验。
当然抛弃HTMLEnyo放弃了大批Web开发者以及围绕Web开发的工具。Enyo的这一选择可能并非明智。
因为webOSEnyo的设计也必须更多考虑移动设备。Enyo提供了专门为触屏设计的Scroll组件,这样可以使webOS设备能够轻易地做出接近iOS和Android设备的触摸滚动效果。
Enyo的架构
EnyoKernel、AJAX、DOM、Touch、UI。
Kernel模块为所有模块所依赖,其中主要包括对JavaScript语言本身的扩展和Enyo的Type系统。
AJAX模块实际上不仅仅是AJAX功能扩展,还包括JSON等AJAX相关的功能扩展。
DOM则是对HTML DOM API的简单封装和基本手势的支持。
Touch实际上包含了Scroll和Touch功能的结合,touch提供了各个层次的Scroll逻辑,既能够直接使用Scroller,又能用更为底层的ScrollMath和ScrollStrategy来定制自己的Scroll行为。
UI模块是Enyo提供的基本控件,这些控件的主要作用是生成对应的HTML代码。
加载系统
EnyoBoot模块可以用于加载Enyo的脚本以及注册全局命名空间。
这里Enyo
虽然很少用到,但这部分功能也暴露给了开发者,通过enyo.loader
OOP系统
EnyoOOP的方式是Type+Component模式,这基本可以认为是Class和Object的别名。
Enyo的Type系统是Enyo提供的一种类型系统,一切Enyo框架内的组件都必须遵循Type系统来注册自己。
Component系统则是与Type系统密不可分的,任何Component都必须有自己的指定Type,Enyo正是通过这种方式保证模块化的。
以下是来自Enyo
enyo.kind({
name: ”Hello”,
kind: enyo.Control,
components:
[
{name: hello, content: Hello From Enyo, ontap: helloTap},
{tag: hr}
],
helloTap: func
您可能关注的文档
最近下载
- 防范青少年药物滥用.pptx VIP
- 2025年广西专业技术人员继续教育公需科目(二)答案.docx VIP
- 执业药师继续教育《泌尿系统感染的药物治疗》习题答案.docx VIP
- 第14课中国共产党诞生 课件.pptx VIP
- 测量系统分析MSA模板(GRR+线性+偏倚+稳定性+计数型)-全公式未加密.xlsx
- 检验科临检组管理程序性SOP文件.doc VIP
- T∕ZZB 1912-2020 多层片式陶瓷电容器电极镍粉.pdf VIP
- 预制菜行业调研分析报告.docx VIP
- 神经内科诊疗指南-技术操作规范.pdf VIP
- APQP4Wind Manual 1.3 APQP4手册1.3 最新标准分享.pdf VIP
原创力文档


文档评论(0)