信托每个前端工程师都有本身喜欢的javascript框架,讨情绪也好,道信奉也罢,javascript框架带给人的不只仅是便捷的开拓,更有一种纯粹的逻辑美感,不管是jquery曼妙的简捷,照旧yui把戏般的沙箱,都使我们发生无限的想象。然而,js框架却又肯定无法做到八面见光的美满无瑕,好比jquery在OO方面做出的让步,以及yui在机能上做的捐躯,无不给人通报一种缺憾美、一种抱负的实际主义。本日,我们来看看yui3在框架计划中的这些捐躯和让步,以便让我们越发深刻的领略yui3的全貌,并将其上风施展至最佳。
1、种子的一步到位 or 颗粒化
所谓种子一步到位是指只要在页面引入一个种子文件的script标签,好比prototype和jquery,只要引入一个prototype.js或jquery.js就可以了,他们将各自对dom操纵和event的封装等等都席卷进一个文件中,并极力将其做到最小,这样做的甜头是显而易见的,行使框架很是简朴。然而yui将这些成果做了级别分别和颗粒化计划,从观念上抽象出来“焦点”、“器材”和“组件”,每个小成果放在一个文件傍边,必要的时辰则要自行去引用,yui文档中给出的大量demo都回收这种要领,这种计划显然不像jquery那样对初学者友爱,并且行使起来不足傻瓜,为了实现一个小成果,乃至要引入三四个js文件。yui这样做的缘故起因有两个,一是yui其实太大,把全部成果都搞进一个文件中确实有点不靠谱,二是为其动态加载的框架计划做铺垫。
2、手动引入 or 动态加载
往页面中写js的传统要领是,直接将js文件作为script标签路径写在页面中,行使yui也可以这样引入页面,但yui更保举行使loader进动作态加载。动态加载剧本的渊源很伟大,今朝来看首要缘故起因有三,其一,页面中手写js标签无论怎样城市占用一个http哀求,纵然这个哀求是一个304,动态加载的文件缓存后则不必提倡真实的http哀求,其二,动态加载可以实现按需加载,并且可以按照js文件之间的依靠举办去重和排序,手写标签加载js文件则必需闪开拓者去特殊存眷一下文件的排序、一再等等,其三,动态加载有利于页面代码的语义化,这使得开拓者只体谅“必要什么”,而不消去在意“怎样获得”。当项目变得加倍痴肥,维护本钱越来越高的时辰,这中小本了解有不小的甜头的。
3、逻辑启动的单一进口 or 沙箱
我们在页面中启动一个js逻辑凡是是放在一个相同onDomReady的要领中,假如页面中存在多个逻辑的时辰怎么办呢?好比,a实现了逻辑A,页面代码是这样的。
这段代码凡是写在页面的尾部,这段逻辑所陪伴的html代码是埋藏在页面的某处,这时b要在页面中增进逻辑B,b的做法是起首找到尾部的这段代码,然后变动成如下边幅:
同样,B逻辑所陪伴的html代码也是埋藏在页面的某处,这样看来,js逻辑和其陪伴的html代码云云疏散,以至于到了删减成果的时辰,每每删掉html却忘了删js,可能删掉js忘了删除html,在重用代码的时辰也会是个贫困。同样,在调试的时辰,工程师也要打开两个窗口别离存眷js和html,纵然这两段代码在统一个文件傍边。云云则不如把代码写成这样:
这种coding写法正是yui所倡导的,也就是所谓的沙箱,每个逻辑包括在一个沙箱中,各司其则互不滋扰。当圈外人赏识代码的时辰也当即大白这就是一个独立的成果块,包括典范的html布局和启动逻辑的js,要重用,整块拷走即可。 (编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|