LABjs,seajs requirejs 区别,SeaJS 哪个最好用?为什么

LABjs、RequireJS、SeaJS 哪个最好用?为什么?_百度知道
LABjs、RequireJS、SeaJS 哪个最好用?为什么?
提问者采纳
5,因此使用 RequireJS 和 SeaJS,核心价值是性能优化。RequireJS 无这方面的支持。还有不少细节差异就不多说了。RequireJS 采取的是在源码中预留接口的形式,核心价值是让 JavaScript 的模块化开发变得更简单自然,两者区别如下. 两者的插件机制有差异。RequireJS 遵循的是 AMD(异步模块定义)规范,一起努力推广模块化开发思想,非常方便便捷. 两者定位有差异,这才是最重要的,让插件开发者可直接访问或修改. 两者遵循的标准有差异,导致了两者 API 的不同:1。SeaJS 不强推,SeaJS 是明显没有 bug。SeaJS 通过插件,源码中留有为插件而写的代码; Node 等环境的模块加载器。LABjs 是一个文件加载器,都比 RequireJS 更简洁优雅. 两者代码质量有差异,可以实现 Fiddler 中自动映射的功能,目前已有较成熟的封装策略.1 和 Node Modules 规范,而采用自主封装的方式来“海纳百川”。SeaJS 则专注于 Web 浏览器端。SeaJS 采取的插件机制则与 Node 的方式一致,向 RequireJS 致敬,同时也想成为 Rhino &#47。SeaJS 更简洁优雅. 两者社区理念有差异,同时通过 Node 扩展的方式可以很方便跑在 Node 服务器端2。RequireJS 是没有明显的1!RequireJS 和 SeaJS 是好兄弟。4,SeaJS 遵循的是 CMD (通用模块定义)规范,也可以达成 LABjs 的性能优化目的。RequireJS 在尝试让第三方类库修改自身来支持 RequireJS。RequireJS 和 SeaJS 则是模块加载器。RequireJS 和 SeaJS 都是很不错的模块加载器。模块加载器一般可降级为文件加载器用,倡导的是一种模块化开发理念. 两者对调试等的支持有差异。6,则 SeaJS 是 jQuery 类库。RequireJS 想成为浏览器端的模块加载器。最后,从而非常灵活,SeaJS 从 API 到实现。3。规范的不同。如果说 RequireJS 是 Prototype 类库的话,更贴近 CommonJS Modules&#47,目前只有少数社区采纳,可以实现各种类型的插件。总之,还可以实现自动 combo 等功能:开放自身LABjs 通过优雅的语法(script 和 wait)实现了这两大特性
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁前端优化三:BigRender的textarea延迟渲染
  -淘宝网首页的实践-
首页的右侧栏的&全球购&、&旅行&、&拍卖&和&二手市场&四个模块,逐一被textarea所包裹。
这部分的特点是,直接把html代码放置入textarea,来做到延迟渲染:
首页最下方的&热卖单品&模块则是把ajax放入textarea,只有屏幕滚动到此处,才会触发下载数据、Append新节点和渲染,通过&&的&&实现:
-textarea延迟渲染原理()-
据,HTML元素中有一种RCDATA elements,含textarea和title。
RCDATA=Replaceable Character Data。
如果用隐藏的textarea来存放 html 代码,textarea 中的内容会按照 RCDATA 规则来解析:
遇到 & 时,会尽可能得到实体字符。
遇到 &/textarea(\s|\\|&) 时,会结束解析。
其他都直接作为 textarea 的内容。
获取也非常简单:
据,对于屏幕外延迟渲染的html存放在隐藏(visibility:hidden)的 textarea 中,并且该 textarea 占据本该渲染的位置,监控窗体滚动,当textarea进入可见区域,将该 textarea 内的 value, 插入到 textarea 之前,并删除掉 textarea 。
这样,把大量不需要在首屏展示的html代码分模块放入一个一个的textarea里,大大减少了DOM节点数,
从而给浏览器合理的喘息(UI Update)时间,等首屏真正在显示器上绘制出来后,
再得到 textarea.value ,填充回 DOM 树。
textarea+datalazyload,相对于其他延迟加载异步渲染解决方案,最大好处,还是减少首屏绘制时的DOM节点总数。
引用资源:
1.玉伯(真名王保平,id@lifesinger)《》(需FQ)
2.BigRender所依赖的
3.yiminghe《》
前端优化四:拉手/Yupoo等的LABjs
LABjs=Loading And Blocking JavaScript,一种脚本载入器。
官网是& 。
它的最大特点是能尽可能并行地下载待加载的 js ,但需要时又能保证 js 的执行顺序。
-拉手网是怎么用的-
2012年的拉手网,在head里引入了LABjs外联js:
& src="/js/lab.min.js" type=""&&/&
还是在head里,随后引入了内联js:
&&&&var js_url = '/';
&&&&.script(js_url+"js/jquery-1.3.2.min.js").wait()
&&&&.script("/js/jquery.autocomplete-01-min.js").wait()
&&&&.script("/js/baseindex-14-min.js").wait(
&&&&&&&&function () {
var youhui_temp = 0;
if(youhui_temp)
{&&&&} &&&&&&&&});
让我们看看它的加载顺序,虽然都是写在head里的,但jquery.js的下载可是在lab.min.js下载的一秒后,时间拉得很开:
-2011年又拍网是怎么用的-
2011年年底,Yupoo的页面底部有这样的代码:
它的&/js/bootstrap.js?.js 里把、LAB.js v1.2.0合并了。
现在又拍网是通过下面的代码延迟加载所需JS:
uPai.addEvent('domready', function(){
uPai.require(['global','editable','slideshow','photoview','lighteditor','phototags','map'],
function(){uPai.fireEvent('ready', [uPai])});
效果如下所示:
()暂时不清楚它是不是直接引入的RequireJS的require语法,从而抛弃了LABjs(参考,如下图所示)。
-脚本载入器是否值得引入?-
有人认为现代浏览器已经有很多优化了,
如Chrome和Firefox近两年的版本中,都可以并行下载多个JS文件(同时下载几个取决于),
并不需要LABjs来控制JS如何载入。
LABjs更关注JS执行的顺序,但未必一定要用这种方式解决。
可能大家更希望的是JS的下载和执行分离能力,即预载入 JavaScript 而不执行。
根据oldj的《LABjs分析》,LABjs检测不同类型浏览器版本,使用了不同脚本加载技术,从而为人诟病,很有可能无法应付现代浏览器更新。
引用资源:
1.oldj《》
2.怪飞《 》
3.玉伯的知乎问答《》
阅读(...) 评论()}

我要回帖

更多关于 为什么用requirejs 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信