游戏ui,移动宽带玩网页游戏端ui和网页ui哪个好

创新高性能移动UI框架——Canvas UI 框架
发表于 15:46|
来源百度FEX总负责人|
作者刘平川
摘要:WebView里,针对体验增强、端基本能力已有成熟方案,反而后期的UI和Layout性能是Web技术欠缺的。针对各种奇葩的优化方案,Canvas UI利用“开发游戏”的思路进行UI组件探索,提供了新的优化方案,同时也存在着不足。
【编者按】百度FEX总负责人刘平川针对讨论热烈的React Native,发表文章提出了用“开发游戏”的思路来做UI组件探索,并将它称为Canvas UI Framework。文中详细介绍了Canvas UI 框架的设计理念及解决方案。全文转载如下:欢迎加入CSDN前端交流群:,进行前端技术交流。最近有人在知乎讨论React Native,我也凑个热闹,来个技术贴。WebView里无法获得的能力虽然是“体验增强”与“端基本能力”,但现都基本上有成熟解决方法。但后期的UI和Layout的性能反而是目前Web技术欠缺的。所以,无论是Titanium与React Native都是解决性能作为探索的出发点。性能慢与快的分水岭慢与快的标准,是按照每秒大于等于60FPS(60帧每秒)的理论,而为什么是60FPS,这不多描述。按此理论,那么“每帧”里所有的操作都必须在16ms完成。WebView里UI性能慢的原因:WebView单线程模型;DOM/CSS排版复杂,渲染上需要大量计算;动画是也很重要的考量因素。多说两句动画。最早做动画都是用setTimeout/setInterval。而setTimeout/setInterval的处理回调的时间tick time精度都在16ms左右。所以,可以想象正常用这两个函数就已经16ms了,再加reflow/repaint/compositing卡顿或跳帧就是家常便饭了。还好的是W3C标准和各浏览器厂商较早就支持了动画接口RAF(RequestAnimationFrame函数)来处理动画帧回调。解决了上述setTimeout/setInterval Animation不足的问题。DOM性能低下的原因浏览器执行的几个步骤:restyle/reflow/repaint触发条件:了解完以上信息,考虑以下条件:把JavaScript逻辑、复杂的DOM与样式合成,并完成渲染;HTTP请求下载多媒体;在一个线程里;移动上的ARM架构。以上操作能在每帧16ms里完成,想想都觉得是一件“不可思议”的事情。于是各种各样的奇葩优化出现了。WebView里高性能组件分类已知的高性能组件的几类方法:(1)常规方法这类的原理主要是利用人为或规范的方式,减少restyle/reflow/repaint触发次数:通用组件优化DOM结构,甚至用Virtual DOM(虚拟DOM)减少reflow和DOM的复杂度;优化CSS,少用或跳过repaint阶段。用编译的手段识别部分CSS,将left/top变换变成transform。跳过layout与paint阶段,就是多使用Layer Composite技术,即CSS的“opacity”和“transform”属性作动画。只能在CSS和DOM结构上去抠出些性能优化的空间,缺陷优化空间有限;这种优化技巧通常是放在最后调优时冲剌使用,不能做为常规手段。(2)进阶方法原理是尽可能利用Native能力,甚至将JavaScript转换成Native App代码。用JavaScript调起Native组件,将增强与高性能组件交给Native来处理,以前在FEX提的“轻组件”就是这么做的。这个原理类似PC时代的ActiveX;将WebView里无法实现的功能用Native实现;利用Native Activity的渲染线程,分担浏览器渲染压力(WebViewCoreThread是WebView线程);最dirty的事在于处理Native上UI的层次管理。需要后台有线程一直在检测scroll/resize/ui change时UI边界是否有相互覆盖与叠加的问题;JavaScript翻译成Java/OC代码。类似React Native/Titanium,将JavaScript翻译成Native代码,特别是UI组件上。(有兴趣的同学可以反编译React Native写的Facebook Group)例如用React,通过虚拟Web UI映射至Native View,并且将代码逻辑翻译成Native。(3)新方法——Canvas UI这也是要说的重点,用“开发游戏”的思路来做UI组件探索,我把它称为Canvas UI Framework。Canvas UI Framework用游戏的思路做UI,最早我有这个想法是2014年。为什么要用Canvas?Canvas是H5的画布元素,即一个DOM元素。通过脚本控制逻辑给画布上增加文字与图像,而浏览器只需要绘制一次形成一幅图。只用一个Canvas DOM元素,降低DOM数量与渲染的复杂度,可以将原来CPU密集型变成GPU操作。绝大多数针对Canvas是用硬件GPU加速渲染 ;GPU的ALU(计算单元)比CPU要多很多,而控制运算(逻辑)则可以用JavaScript在CPU里做,甚至还可以用WebWorker多线程处理CPU密集型的操作,从而达到充分利用硬件资源的能力;Canvas画布无论是JavaScript&H5,还是Native都有类似的API。所以:本地调试可在浏览器里完成。最差方案可以用Canvas UI跑在浏览器里。更进一步,可以把浏览器Canvas接口的反射到用Native画布上,以此提高性能。值得一提的是,腾迅的X5内核已经将egret(白鹭游戏引擎与cocos2dx)内置,所以时间线拉长来看,WebView的画布功能将会更加强大。在2014年中时,很多人见识过默认置入Cocos2dx引擎的浏览器,用WebView玩“捕鱼达人”很流畅。由此说明Canvas做UI组件可行性还是蛮高的。解决方案用游戏的思路来解决DOM paint的问题,业界早就有实验。最早实验的是zynga做Angry Birds游戏的厂家,2010年写的Demo Scroller:设计、开发一个基于Canvas的UI框架系统,由于系统相对比较复杂,需接管浏览器构建的整个过程:验证在实践环境中的效果,要把原来页面的DOM写成Canvas,再加上一些调优与比较,工作量相对大,(包括zynga也只是实现了一个简单的Demo而已)就暂时搁置了。最近这阵子在翻Github与新闻时,我惊喜的发现也有人在做同样的事了,最后发现Flipboard同学们写的一个Demo:这个Demo足够复杂,动画也足够多、炫。是用Canvas来构建整个UI。测试过后:这么复杂的Demo在MI4以及配置以上性能很好,流畅度无限接近于Native,比较理想;对比过G+的Android应用,G+的App从动画上比Flipboard提供的的Demo还“卡”些;在小米Note上的动画流畅度已秒掉iPhone 6,非常赞。按照摩尔定律,可以预计明年Note的标配的CPU和GPU配置会成为主流。而现在用Canvas UI框架用在MI4以下机器仍然比较慢。而2015年H5开发App,对很多公司来说只是plan B计划,大公司甚至plan B都不是。所以,如果一定要在纯H5上搞牛逼动画,还是再等等吧。布局系统CSS Layout说回到Canvas Component Framework,回到我上面画的这张图:UI组件基于“文本”与“图像”。但Framework,除了UI组件本身以外,还需要有Layout,而CSS只适用于浏览器本身的Layout而无法适用于Canvas画布。要给开发者好且排版可控的方案,那就要开发一个用JavaScript实现类似CSS的布局子集的框架。否则UI的组件在画布上没有Layout就无意义。这个布局框架实现成本(简单实现)理论上并不大,大的是在于未来增加新Feature并相互组合时与浏览器本身有差异,需要有完整的Unit Test。正好最近Facebook也开源了一个用JavaScript写CSS Layout子集的解决方案,实现了:paddingwidthmarginborderflexposition(relative/absolute)等等Feature。Github地址:这些CSS布局子集基本能满足我们前期开发预期。开发框架用css-layout再加上UI管理层,就可以比较清晰的实现出Canvas的UI组件框架了。那么,剩下的事就是:应用开发框架的选择,如:选择React/MVC框架;模拟DOM层次,即图层管理。并且,让我非常欣喜的是,Flipboard在2月已经完成了构建,基于React框架。基于css-layout+React基础上整合而成。Canvas UI框架不足与风险看上去Canvas框架这么牛逼,但有很多缺陷。对开发人员的要求较高。需要用JavaScript实现一些浏览器基本的布局、图层管理;第三方使用者学习成本高。不象是用传统“标签”就可以实现UI在浏览器的输出;开发者是否买账,对于框架的开发易用性有“很大”的挑战;对开发质量提出新要求。由于所有的UI组件与交互都在画布Canvas里,所以调试成本比较高,需要有较为完整的Logging与Debugging方案;用户可用性会受影响。例如:*语音无法识别Canvas里的文字;无法像WebView里一样将画布里的文字选中并复制出来。总结Canvas UI框架作为柳暗花明又一村的技术。短短一周多,已经近4K的star。确实很赞。与其看Facebook开源React Native,不如好好研究react-canvas吧。本文转载自:
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章developerWorks 社区
本文选取了 Bootstrap、jQuery UI、jQuery Mobile、Sencha ExtJS、Sencha Touch、Sencha GXT、Dojo、Dojo Mobile、Mootools、Foundation、YUI、Kissy、QWrap 等 16 个国内外前端开发框架进行初步的横向比较,可以作为大家挑选前端开发框架的初步参考。
, 高级软件工程师,
王芳侠,IBM Notes 研发团队的软件工程师,具有丰富的 Notes 安装,部署及自动化测试经验。
近几年随着 jQuery、Ext 以及 CSS3 的发展,以 Bootstrap 为代表的前端开发框架如雨后春笋般挤入视野,可谓应接不暇。不论是桌面浏览器端还是移动端都涌现出很多优秀的框架,极大丰富了开发素材,也方便了大家的开发。这些框架各有特点,本文对这些框架进行初步的介绍与比较,希望能够为大家选择框架提供一点帮助,也为后续详细研究这些框架的抛砖引玉。JavaScript & CSS
目前前端框架主要采用 JavaScript+CSS 模式,我们先来了解一下这两者。预准备之 JavaScript
目前主流的 JavaScript 框架排名中,jQuery 和 Ext 可算是佼佼者,获得了用户的广泛好评。国内的一些框架很多也是仿照 jQuery 对 JavaScript 进行了包装,不过这些框架的鼻祖 YUI 还是坚持用自己的 JavaScript 类库。
jQuery 是目前用的最多的前端 JavaScript 类库,据初步统计,目前 jQuery 的占有率已经超过 46%,它算是比较轻量级的类库,对 DOM 的操作也比较方便到位,支持的效果和控件也很多。同时,基于 jQuery 有很多扩展项目,包括 jQuery UI(jQuery 支持的一些控件和效果框架)、jQuery Mobile(移动端的 jQuery 框架)、QUnit(JavaScript 的测试框架)、Sizzle(CSS 的选择引擎)。这些补充使得 jQuery 框架更加完整,更令人兴奋的是,这些扩展与目前的框架基本都是兼容的,可以交叉使用,使得前端开发更加丰富。
Ext 是 Sencha 公司推崇的 JavaScript 类库,相比 jQuery,Ext JS 更重量级,动辄数兆的文件,使得 Ext 在外网使用的时候会顾虑很多。但是,另一方面,在 Ext JS 庞大的文件背后是 Ext JS 强大的功能。Ext JS 的控件和功能可以说强大和华丽到了让人发指的程度。图表、菜单、特效,Ext JS 的控件库非常丰富,同时它的交互也非常强大,独立靠 Ext JS 几乎就可以取代控制层完成于客户的交互。强大的功能,丰富的控件库,华丽的效果也使得 Ext JS 成为内网开发利器。
框架鼻祖 YUI 也有自己的 JavaScript 类库,DOM 操作和效果处理也还比较方便,功能和控件也很齐全,但是相比 jQuery 和 Ext JS 显得比较中庸一些。随着 Yahoo!的没落,YUI 的呼声也逐渐被新起的框架淹没,想来也让人惋惜。
除了上述的三个 JavaScript 类库,还有 Dojo、Prototype、Mootools 等众多类库,由于本文讨论的框架多采用上述框架,所以其他框架暂不讨论。预准备之 CSS
随着 CSS3 的推出,浏览器对样式的支持更加上了一个层次,效果更加出众。各框架也纷纷开发出基于 CSS3 的样式,让框架更加丰富。
对于 CSS3,更是推出了一些预编译的扩展框架,主要是 LESS、Sass 和 Compass(Compass 是基于 Sass 的扩展)。可以方便地进行变量定义,格式引用,函数定义等操作,并内置了大量的效果。让您的 CSS 开发效率提升一个档次。根据 Chris Coyier 的比较,Sass+Compass 几乎完胜 LESS。有兴趣的读者可以自行参考。由于 Sass 是用 Ruby 开发的,所以也需要相应的 Ruby 环境将文件编译成 CSS 文件。国内外前端开发框架对比
首先我们先对目前国内外主流前端开发框架做一个基本的了解,之后再对他们进行一个直观的对比。Bootstrap
Bootstrap()是目前桌面端最为流行的开发框架,一经 Twitter 推出,势不可挡。Bootstrap 主要针对桌面端市场,Bootstrap3 提出移动优先,不过目前桌面端依然还是 Bootstrap 的主要目标市场。Bootstrap 主要基于 jQuery 进行 JavaScript 处理,支持 LESS 来做 CSS 的扩展。如果想要在 Bootstrap 框架中使用 Sass,则需要通过 Bootstrap-Sass()项目增加兼容。Bootstrap 框架在布局、版式、控件、特效方面都非常让人满意,都预置了丰富的效果,极大方便了用户开发。在风格设置方面,还需要用户在下载时手动设置,可配置粒度非常细,相应也比较繁琐,不太直观,需要对 Bootstrap 非常熟悉配置起来才能得心应手。
在浏览器兼容性方面,目前 Firefox, Chrome, Opera, Safari, IE8+等主流浏览器 Bootstrap 都提供支持。但是在 IE 支持方面略显短板,对 IE6 和 IE7 支持都不是特别理想。在 Bootstrap3 中甚至放弃了对 IE6、IE7 的支持。不过在国内,根据 CNZZ 的统计,目前 IE 的占有率仍然达到 46.98%,同时大量国内浏览器也是采用 IE 内核。这让我们在使用 Bootstrap 的时候总是有所顾忌。在 Bootstrap2 上面,可以通过 BSIE 项目增加对 IE6 的支持,但是也不能支持全部效果。
在框架扩展方面,随着 Bootstrap 的广泛使用,扩展插件和组件也非常丰富,涉及显示组件、兼容性、图表库等各个方面。图 1. Bootstrap 的布局与效果示例jQuery UI
jQuery UI()是 jQuery 项目组中对桌面端的扩展,包括了丰富的控件和特效,与 jQuery 无缝兼容。同时,jQuery UI 中预置了多种风格供用户选择,避免了千篇一律。如果您对预置的风格不满意,还可以通过 jQuery UI 的可视化界面,自助对 jQuery UI 的显示效果进行配置,非常方便,够高端大气上档次。图 2. jQuery UI 的效果示例jQuery Mobile
jQuery Mobile ()是 jQuery 项目对移动端的扩展,目前支持 iOS, Android, Windows Phone, Black Berry 等主流平台。具体支持情况可以参见。另外 jQuery Mobile 在布局,控件和特效方面都很慷慨。在风格方面,与 jQuery UI 类似,除了预置的风格效果之外,还支持用户可视化配置的效果。可圈可点的是,jQuery Mobile 还与 Codiqa 无缝连接,用户可以直接通过拖拽实现对界面的设计,以及代码的生成。图 3. jQuery Mobile 的效果示例Sencha Ext JS
Sencha Ext JS()是 Sencha 基于 Ext JS 开发的前端框架,内容极其丰富,控件、特效等支持非常非常丰富,表格、图画、报告、布局、甚至数据连接,无所不包。只有您想不到,没有它办不到。基于 Sass 和 Compass,使得用户对格式的修改和特效制作更加方便。此外,Sencha 有丰富的产品线,Sencha Desktop Packager 可以让您的应用拥有桌面应用的效果, Sencha Animator 基于 CSS3 更加方便用户对特效的制作,不光支持桌面端,移动端更是不在话下。在 Sencha 看来,用 Animator 做游戏都是轻松拿下。Sencha Space 是基于 HTML5,提供制作跨平台应用的利器。同时 Sencha Ext JS 对主流浏览器的支持也非常理想。
Sencha Ext JS 有着耀眼的光辉,但是光芒背后总归有点阴影。除了之前提到的 Ext JS 太过重量级之外,商业化是 Sencha 的另一把利剑。帮助 Sencha 披荆斩棘之时,也把大把的码农砍在马下。Sencha 规定,凡是商业化的应用,都需要付费。另外,Sencha 的辅助产品也全部收费,否则只能是试用版。这里的辅助产品,其实包括了上面提到的所有产品。图 4. Sencha Ext JS 的效果示例Sencha Touch
Sencha Touch()是 Sencha 面向移动端的开发框架,基于 HTML5 技术,保证了对大多数移动平台的支持。Sencha Touch 包括丰富的布局,控件和特效。并且 Sencha Touch 对响应式支持的很好,在不同设备上,甚至在横屏和竖屏时都会显示不同的效果。这种效果是 Sencha Touch 控件自适应的。Sencha Touch 也实现了对大多数移动设备的支持。Sencha Architect 是对移动端的可视化编辑工具,有着不朽的效果,但也有着不菲的身价。
同时 Sencha Touch 也支持混合式 App 创建,也即是基于 Web 技术,配合 PhoneGap ()或者 Cordova()之类的工具,就可以构建移动应用。Sencha Touch、jQuery Mobile、Foundation 这些前端框架负责界面和效果的编写,PhoneGap、Cordova 框架则允许通过 JavaScript 和其他接口对手机设备的调用,开创了新的移动端开发模式,真正实现了移动端的跨平台开发。Sencha GXTSencha GXT()是 Sencha 对 Google 的 Web Toolkit 框架的扩展。可以支持通过 Java 文件的解析,生成 HTML5 页面文件,可以与 Java 环境无缝集成。有着丰富的控件和特效,并且可以无缝调用 Google 地图等 Google 应用。虽然开发时不是特别直观,但是效果还是非常丰富的。与 Sencha Ext JS 丝毫不显弱势。图 5. Sencha GXT 的效果示例Dojo
目前唯一能与 Sencha Ext JS 一较高下的框架就只有 Dojo()了。抱着 IBM, VMWare 等众多大腿,Dojo 的一颦一笑都额外惹人注目。Dojo 项目的产品线和功能也特别丰富。首先,Dojo 有自己的 DOM 解析器 Nano,是 DOM 解析和处理的内核。此外,Dojo 的 Web 框架有非常丰富的布局、版式、控件以及特效,对多语言以及图表的扩展支持都非常好,并支持对地图的操作。大家可以查看它的演示(),与 Ext JS 的效果进行比较。此外,Dojo 还有自己的图形化设计和开发工具 Maqetta,可以通过拖拽实现设计。Dojo 的风格设置不是在下载的时候指定的,而是通过引用不同的 CSS 格式来实现。
Dojo 虽然比 jQuery 重量级不少,但是比 Ext JS 还是轻量级一些,至少在文件大小上。另外,Dojo 还有自己的 CDN 机制,只要通过配置,就可以对 Dojo 文件进行 CDN。由于有 IBM,Oracle 等大佬的支持,Dojo 在与 Spring 等现有框架支持方面也表现得很理想。图 6. Dojo 的效果示例Dojo Mobile
Dojo Mobile()是 Dojo 推出的移动端框架,表现也很不俗。在布局,控件,特效方面都下了不少功夫。并支持与所用平台匹配的风格设置,如果您不喜欢还可以引用不同 CSS 文件来实现不同效果。
除了可以在移动端的浏览器上使用,Dojo Mobile 也支持与 PhoneGap 无缝连接,可以通过 Dojo Mobile 开发移动 App 应用。同时也具有不错的响应性(在宽屏和窄屏上的显示效果不同)。图 7. Dojo Mobile 在 IPhone 上的效果示例Mootools
Mootools()可以说是目前最轻量级的前端框架,内核 js 压缩完之后只有 8k,完整版压缩之后也不到 100k,远比其他框架要小很多。Mootools 有自己的面向对象设计的内核 Mootools Core。伴随着最小的文件大小,框架的功能比其他框架也要弱不少,只有在控件和特效上有少量支持。图 8. Mootools 效果示例Prototype JS
Prototype JS()也是一个简洁的框架,有着丰富的对 DOM 操作的功能,对 Ajax 和 JSON 支持得都非常好,在使用上与 jQuery 相比也相差不多。作为 Rails 默认的 JavaScript 框架,相信对广大开发人员也很有借鉴意义的。
在扩展方面,Scriptaculous()对 Prototype JS 进行了丰富的扩展,主要是在动画特效、Ajax 控制、DOM 操作、单元测试方面等。YUI
YUI()作为开源前端框架的鼻祖,在框架上的功力非常之深。有着自己的解析 DOM 的核心框架,并且在特效、动画、图表等方面都有丰富的扩展,并可以通过 YQL 直接访问 Yahoo!的数据。在用户经常使用的功能方面都有着不错的表现。
与 jQuery 灵活的语法相比,YUI 显得更加中规中矩,在代码组织、结构和模式方面都更加讲究,更体现出工程师的严谨。同时 YUI 也有着丰富的产品线,拥有测试框架 YUITest、文档生成框架 YUIDoc、自动构建框架 YUI Build,满足项目开发各方面的需求。随着 Yahoo!的没落,YUI 也感觉逐渐步入暮年,但作为相当严谨完整的前端框架鼻祖,足以秒杀其他。图 9. YUI 的效果示例Foundation
Foundation()是 ZURB 旗下的主要面向移动端的开发框架,但是也保持对桌面端的兼容,目前已经更新到 Foundation4 版本。框架主要采用 jQuery 和 Zepto(语法酷似 jQuery,但比 jQuery 更轻量级)作为 JavaScript 基础,CSS 则基于 Sass、Compass,有着很好的扩展性,并有着丰富的布局,版式和多种多样的控件与特效,非常方便开发者使用。控件的响应式效果也帮助用户识别不同浏览器效果。
ZURB 作为一个完整的项目组,包括很多原型、设计、构建、分析等一系列工具,为用户提供完整的服务。当然,有很多服务是要收费的。
Foundation 主要以移动端风格为主,如图 10 所示。图 10. Foundation 的风格示例Kissy
Kissy()是阿里集团自主开发的前端框架,目前在淘宝网、一淘网等阿里系网站上得到不少应用。Kissy 框架模仿 jQuery 编写了自己的内核 Kissy Core,用于对 DOM 的解析,Ajax 处理等。同时,有着丰富的控件,并实现了一些动画效果和特效。同样,在 Kissy 的控件中也可以看到 Bootstrap 等国外框架的影子。此外,Kissy abc 项目工具可以帮助用户实现自动化构建,并有很多扩展组件方便用户使用。
应该说 Kissy 是目前国内开发的最好的前端框架,在实际使用中也经过了检验,但跟国外成熟框架相比还是有一定差距。图 11. Kissy 的效果示例Kissy Mobile
Kissy Mobile()是 Kissy 推出的移动版框架,意在开发出可以在移动浏览器和移动应用上都可以使用的框架,不过目前项目内容还比较少,控件和特效也比较少,也不具有响应式的效果。图 12. Kissy Mobile 效果示例Qwrap
Qwrap()是百度有啊团队推出的 JavaScript 框架,现在被收入 360,被广泛应用与 360 产品中。Qwrap 综合 jQuery、Prototype、YUI 特点,对 JavaScript 进行了封装。但是,如果要把 Qwrap 算成一个前端开发框架还是有些牵强,因为除了 JavaScript 类库之外,Qwrap 基本乏善可陈,还处于发展阶段。Tangram
Tangram()是百度推出的另一个 JavaScript 框架,被广泛应用于百度系旗下的产品,与 Qwrap 类似,Tangram 也只能算是一个 JavaScript 框架,对 JavaScript 做了不少扩展,但是作为前端开发框架还是显得比较单薄。基于此,百度公司继续推出了两个基于 Tangram 的项目,Magic 和 Baidu Template。Magic 项目基于 Tangram 对控件和特效都做了扩展,增加了 10 个新的控件。Baidu Template 则更多是针对移动端开发的扩展,目前对于大多数主流移动设备和操作系统都有支持。
了解完这些框架,我们从平台、基础技术、布局、CSS、控件、特效和风格设置等几个方面来对它们进行一个基本比较:表 1.国内外主流前端开发框架对比
jQuery, LESS
预置/可视化配置
预置/可视化配置
Ext JS, Sass
Java, HTML5
内置与移动端匹配
Mootools Core
jQuery/Zepto, Sass
Kissy Core
由此我们可以看到,对于桌面端,目前 Bootstrap 和 jQuery UI 已经可以满足大多数的开发需求,也在业界得到了广泛的应用,有着丰富的组件和扩展,以及相对简洁的语法和操作。应对我们的基本需求已经足够了。如果您对前端界面的效果有比较高的要求,希望可以应用像结构树这样比较复杂的控件,建议您考虑 Dojo,抱了这多年的大腿也不是白抱的,效果还是很不错的。对于,局域网的应用,还可以考虑 Sencha Ext JS 框架,效果更加震撼,但是对网络的要求也更高。如果这些还是不能满足您内心的狂野,那只能建议您使用 Flex 或者 SilverLight 了。相反,如果您对网络速度非常敏感,希望找一个迷您并且功能不错的框架,那 Mootools 会是您不错的选择。如果您很怀旧,也可以使用 YUI,虽然曲线不够性感,但是内容很丰富。如果您是一个 Ruby on Rails 的开发人员,建议您可以先看一下 Prototype 框架,毕竟是默认的框架。如果您对上面说到的框架都不满意,那建议您体验一下国内的框架一段时间,然后再回过头来看刚才说到的框架,相信您一定会有一种豁然开朗的感觉。
对于移动端的应用,jQuery Mobile, Foundation 依然是轻量级选择,Dojo Mobile 和 Sencha Touch 会为您提供更加强大的功能。同时,您还可以与 PhoneGap 和 Cordova 框架结合使用,利用 Web 的技术开发移动应用。不过这种混合式开发模式兴起时间并不长,还在不断发展中。结束语
上面只是当前涌现出的前端开发框架中的一部分,相信还有更多优秀的框架还在研发中心,到此我们对“百花齐放”这一词有了更直观的感觉,也说明在沉寂了多年之后,前端开发的工作越来越获得大家的重视,也注定会越来越繁荣。文中的建议只代表笔者个人的初浅意见,大家最终的选择还要结合实际的开发需求。
参考资料 ,从语言能力、变量处理、函数扩展等多角度详细地比较了 Sass 和 LESS,为用户给出了选择建议。 ,PhoneGap 是目前广泛使用的移动端开发框架,配合 PhoneGap 的 SDK 开发者可以通过 Web 技术开发出跨平台的移动应用。 ,Cordova 是 Apache 公司推出的移动开发框架,也是让开发者可以使用 Web 技术开发跨平台移动应用。 :通过专门关于 Web 技术的文章和教程,扩展您在网站开发方面的技能。:这是有关 Ajax 编程模型信息的一站式中心,包括很多文档、教程、论坛、blog、wiki 和新闻。任何 Ajax 的新信息都能在这里找到。,这是有关 Web 2.0 相关信息的一站式中心,包括大量 Web 2.0 技术文章、教程、下载和相关技术资源。您还可以通过
栏目,迅速了解 Web 2.0 的相关概念。查看 ,了解更多和 HTML5 相关的知识和动向。加入 。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
文章、教程、演示,帮助您构建、部署和管理云应用。
立即加入来自 IBM 的专业 IT 社交网络。
免费下载、试用软件产品,构建应用并提升技能。
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=Web developmentArticleID=969037ArticleTitle=前端开发框架对比publish-date=

我要回帖

更多关于 移动宽带玩网页游戏 的文章

 

随机推荐