美文网首页实用前端
框架的选择使用,性能开销到底能降低到什么程度

框架的选择使用,性能开销到底能降低到什么程度

作者: 麦壳儿UIandFE2 | 来源:发表于2017-01-28 23:27 被阅读193次

这里借用mui官网上的一篇文章说明,感觉写的不错。分享出来。写的不错的地方加了粗体和列表分类。

mui产品概述
入门 mui

MUI为何诞生
性能和体验的差距,一直是mobile app开发者放弃HTML5的首要原因。 浏览器天生的切页白屏、不忍直视的转页动画、浮动元素的抖动、无法流畅下拉刷新、侧滑抽屉卡顿等问题,这些都让HTML5开发者倍感挫败,尤其拿到Android低端机运行,摔手机的心都有;

另一方面,浏览器默认控件样式又少又丑,制作一个漂亮的控件非常麻烦,也有一些制作简单的ui框架但性能低下。

mui框架有效的解决了这些问题,这是一个可以方便开发出高性能App的框架,也是目前最接近原生App效果的框架。

其实我们原本是开放心态,大家随意使用自己喜欢的前端框架。但是其他移动App框架实在不给力:

  • 基于jq的jqmobile,性能低的无法忍受

  • 基于angular的ionic,都把pc端很重的东西引入到移动App中。angularjs本身设计是为了pc端网页的双向数据绑定,做个移动App干嘛用这么重的东西。

  • bootstrap这种响应式设计,性能在低端机不足,而且UI风格一看就是网页,不是App的感觉。

  • framework7只能在iPhone上运行也无法被接受。于是为了方便广大开发者,我们基于ratchet框架制作了mui。
    MUI的定位是:最接近原生体验的移动App的UI框架
    基于mui的定位,产生了mui的几个特点,轻、小、只涉及UI、只为移动App而生、界面风格原生化。所以请大家注意,mui有所为有所不为:

  • mui不是jq,不封装dom操作与ui无关的mui不做,你愿意用jq或zepto就自己用,并不冲突。但我们并不建议在移动App里引入jq或zepto这些框架,原因如下:

  • 为了性能,层层封装的框架,尤其是遍历循环dom时,影响效率,尤其在低端Android手机上,我们费死劲了才把性能以毫秒为单位一点点提升,搞这个的dom框架进来就让很多努力又付诸东流。
    原生JS挺简单,为何需要jq?jq的成功当时是因为ie6、7、8、9、10、chrome、ff这些浏览器不兼容,让开发者崩溃,而且pc上浏览器性能好,跨平台兼容也不影响性能。但jq根本就不是为手机设计的。手机上只有webkit浏览器(忽略wp,反正mui不支持wp),根本就不需要jq这种封装框架来操作dom。而且HBuilder提供了代码块来简化开发,敲dg、dq,直接生成document.getElementById("")、document.querySelectorAll(""),非常快捷方便,而且执行性能非常高,而且没有浏览器兼容问题。发现很多开发者只会jq,反正想继续在App里使用jq没有问题。但也建议大家多学学js本身。

mui、HTML5+、5+Runtime的关系说明mui是一个前端框架,HTML5+是一套HTML5能力扩展规范,HTML5+ Runtime是实现HTML5+规范的强化浏览器引擎。有点类似于bootstrap、w3c和chrome os的关系。HTML5+规范隶属于http://www.html5plus.org,定义了HTML5规范中没有但开发者做App需要的扩展规范。DCloud的5+ Runtime完整的实现了HTML5+规范。同时5+ Runtime还实现了Native.js,一种通过js调用几十万原生API的技术。为了提升体验,mui势必会调用一些5+Rutime的增强能力,主要是plus.webview和plus.nativeUI。但mui不是要替代HTML5Plus,以后也无计划替代把所有5+的webview api都包一层。mui是把一些常用的窗体操作封装了,但这种封装适应面也是有限的,遇到复杂窗体管理,还是要仔细了解plus.webview。所以,
有人抱怨mui的文档不全,其实是缺本文,本文终于说清楚mui做什么不做什么了。详细的mui文档要去下方提示的mui官网查看。
有人抱怨mui api不全,其实是没去看plus的api。因为官方推荐的顺序是,先学5+,再学mui。倒过来就不太容易理解如何封装的了。
有人抱怨Hello mui示例代码里写的mui的方法,为何文档里没有,是因为有些方法是内部工程师简化开发中的封装,未考虑通用设计,还不足以开放为标准api。

mui有插件体系为了简化开发者的多端发布开发,mui在核心库之外,补充了一些插件,这些插件不一定是ui相关,也有业务相关。在Hello mui示例里下方的示例模板,基本都属于插件。这些插件的使用需要加载mui标准库之外的js等资源。

----------------------------------------------------喜欢就动动小手哈。------------------------------------------------------

--------------------------------------你的支持是洒家-麦壳-macrolam前进的动力--------------------------------------

相关文章

  • 框架的选择使用,性能开销到底能降低到什么程度

    这里借用mui官网上的一篇文章说明,感觉写的不错。分享出来。写的不错的地方加了粗体和列表分类。 mui产品概述入门...

  • Java单例模式常见实现方式

    推荐使用程度由低到高排序 同步懒汉式 每次获取instance,先锁住类对象,开销大,效率低。 双检锁(DCL,D...

  • Android中线程池使用

    为什么使用线程池 减少创建线程数量,提高APP性能 (减少创建和销毁线程的性能开销) 节省开销,防止并发线程过多,...

  • 阳光房

    作为阳光房的框架和支撑,框架结构的牢固程度,承重能力和使用寿命直接决定阳光房的安全性能。 1)材料选择:根据承重能...

  • 到底如何选择PHP框架?Yii、ThinkPHP、laravel

    很多朋友都不知道如何去选择框架,选择框架的时候就会很纠结。到底该学什么框架,选择什么框架呢?特别纠结该如何选择PH...

  • 如何选择PHP框架

    很多朋友都不知道如何去选择框架,选择框架的时候就会很纠结。到底该学什么框架,选择什么框架呢?特别纠结该如何选择PH...

  • 到底如何选择PHP框架

    很多朋友都不知道如何去选择框架,选择框架的时候就会很纠结。到底该学什么框架,选择什么框架呢?特别纠结该如何选择PH...

  • php优化

    使用数组作为参数来优化性能 代码的修改和升级很常见,但是频繁的操作会使程序性能降低,通过对其进行扩展,使用参数传递...

  • 大数据开发:Spark调优原理及思路

    在具体的大数据应用场景下,即使是高性能的框架,也会因为各种复杂的需求,及系统长期运行造成的冗余,导致效率和性能降低...

  • 04.性能问题

    性能问题 尽管使用多线程的初衷是提高性能,但与单线程的方法相比,多线程会引起一些额外的开销。造成这些开销的操作包括...

网友评论

    本文标题:框架的选择使用,性能开销到底能降低到什么程度

    本文链接:https://www.haomeiwen.com/subject/zcaqittx.html