当前位置:  软件>JavaScript软件

前端模块加载解决方案 modJS

    来源:    发布时间:2014-12-30

    本文导语:  modJS 是一套的前端模块加载解决方案。与传统的模块加载相比,modJS 会根据产品实际使用场景,自动选择一种相应的方案,使最终的实现非常轻量简洁。 使用 模块的定义 modJS是一个精简版的AMD/CMD规范,并不完全遵守AMD/CMD规...

modJS 是一套的前端模块加载解决方案。与传统的模块加载相比,modJS 会根据产品实际使用场景,自动选择一种相应的方案,使最终的实现非常轻量简洁。

使用

模块的定义

  • modJS是一个精简版的AMD/CMD规范,并不完全遵守AMD/CMD规范,目的在于希望给使用者提供一个类似nodeJS一样的开发体验,同时具备很好的线上性能。

使用define来定义一个模块:

define (id, factory)

在平常开发中,我们只需写factory中的代码即可,无需手动定义模块。发布工具会自动将模块代码嵌入factory的闭包里。

factory提供了3个参数:require, exports, module,用于模块的引用和导出。

  • modJS的发布工具会保证你的程序在使用之前,所有依赖的模块都已加载。因此当我们需要一个模块时,只需提供一个模块名即可获取:

    require (id)

    和NodeJS里获取模块的方式一样,非常简单。

    因为所需的模块都已预先加载,因此require可以立即返回该模块。

  • 考虑到有些模块无需在启动时载入,因此modJS提供了可以在运行时异步加载模块的接口:

    require.async (names, onload, onerror)

    names可以是一个模块名,或者是数组形式的模块名列表。

    当所有都加载都完成时,onload被调用,names对应的所有模块实例将作为参数传入。

    如果加载错误或者网络超时,onerror将被触发。

    超时时间可以通过require.timeout设置,默认为5000(ms)。

    使用require.async获取的模块不会被发布工具安排在预加载中,因此在完成回调之前require将会抛出模块未定义错误。

    require.loadJs (url)

    异步加载脚本文件,不做任何回调

    require.loadCss ({url: cssfile})

    异步加载CSS文件,并添加到页面

    require.loadCss ({content: csstext})

    创建一个样式列表并将css内容写入

说明

modJS只实现了AMD的一个子集,如果需要使用完整兼容AMD规范的版本,请使用amd目录下的esl-mod.js,这个版本是基于esl版本基础之上实现了fis的需求。



    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Web前端开发如何利用css样式来控制Html中的h1/h2/h3标签不换行
  • 什么叫前端??
  • Web前端设计:Html强制不换行<nobr>标签用法代码示例
  • 前端集成解决方案 F.I.S
  • Web前端设计:html上标<sup>标签与下标<sub>标签详解
  • 前端解决方案 OniUI
  • 数据库前端管理工具 VFront
  • 后盾网HDJS前端库 HDJS
  • 前端验证组件 DESTINY Validator
  • GTK窗口前端显示及GTK窗口闪烁
  • UI前端解决方案 KoalaUI
  • pfcalc的图形化前端 Qpfcalc
  • MPlayer 的图形化前端 ExMplayer
  • CUPS 的图形化前端工具 GtkLP
  • Linux图形化登录前端 gRuijieClient
  • syslog日志的Web前端 LogAnalyzer
  • Web 开发前端工具 hood.ie
  • 企业级前端应用开发平台 EDP
  • 前端开发框架 Furatto
  • 前端UI解决方案 Bootswatch
  • 网易前端JS框架 NEJ


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3