RequireJS 是一个JavaScript模块加载器。它非常适合在浏览器中使用, 它非常适合在浏览器中使用,但它也可以用在其他脚本环境, 就像 Rhino and Node. 使用RequireJS加载模块化脚本将提高代码的加载速度和质量。

IE 6+ .......... 兼容 ✔
Firefox 2+ ..... 兼容 ✔
Safari 3.2+ .... 兼容 ✔
Chrome 3+ ...... 兼容 ✔
Opera 10+ ...... 兼容 ✔

获取 REQUIREJS§ 1

去 下载 页面下载文件。

添加 REQUIREJS§ 2

注意: 关于 jQuery 集成的意见, 请看 jQuery 集成页面

假定你的项目中 JavaScript 都放在一个 "scripts" 目录。 例如, 你的项目中有一个 project.html 页面和一些 scripts, 目录布局如下:

  • 项目目录/

    • project.html
    • scripts/
      • main.js
      • helper/
        • util.js

添加 require.js 到 scripts 目录, 如下:

  • 项目目录/

    • project.html
    • scripts/
      • main.js
      • require.js
      • helper/
        • util.js

为了充分利用的优化工具,建议您将所有的scripts放到的HTML外面, 然后只引用 require.js 来请求加载你其它的scripts:

<!DOCTYPE html>
<html>
<head>
<title>My Sample Project</title>
<!-- data-main attribute tells require.js to load
scripts/main.js after require.js loads. -->
<script data-main="scripts/main" src="scripts/require.js"></script>
</head>
<body>
<h1>My Sample Project</h1>
</body>
</html>

在 main.js, 你可以使用 require() 来加载所有你需要运行的scripts. 这可以确保你所有的scripts都是在这里加载的, 你可以 指定 data-main script 使用异步加载.

require(["helper/util"], function(util) {
//This function is called when scripts/helper/util.js is loaded.
//If util.js calls define(), then this function is not fired until
//util's dependencies have loaded, and the util argument will hold
//the module value for "helper/util".
});

加载 helper/util.js 脚本. 想要充分利用 RequireJS, 请看 API 文档 去了解更多相关定义和模块的使用

优化§ 3

如果你最终决定在你在代码中使用, 可以使用 优化 结合 JavaScript 文件来减少加载时间. 在上面的例子中, 你可以结合 main.js 和 helper/util.js 加到一个文件中.

最新文章

  1. 【Java每日一题】20161212
  2. 项目中如何GB2312转UTF-8
  3. ORACLE查看并修改session和连接最大数
  4. List&lt;string&gt;中的泛型委托
  5. Swift版iOS游戏框架Sprite Kit基础教程下册
  6. 学习manacher(最长公共回文串算法)
  7. IOS 后台执行 播放音乐
  8. 构建安全的Xml Web Service系列之初探使用Soap头
  9. Codeforces#364Div2
  10. 十三、Hadoop学习笔记————Hive安装先决条件以及部署
  11. .NET Core容器化之多容器应用部署@Docker-Compose
  12. ROS探索总结(十三)——导航与定位框架
  13. Docker最全教程——MongoDB容器化(十二)
  14. oracle 表空间,用户的创建及授权,表空间基本操作
  15. 20145232韩文浩 《网络对抗技术》 Web基础
  16. python接口测试—post请求(二)
  17. 【Linux】Screen命令
  18. Summarization of Tech Interviews
  19. 子元素scroll父元素容器不跟随滚动JS实现
  20. php 打印

热门文章

  1. 递归实现进制转换(C++版)
  2. 【Quartz】Spring Boot使用properties文件配置Quartz
  3. Markdown基本语法总结
  4. 索引(Awakening!)
  5. Unity3D碰撞触发函数
  6. oracle创建表空间个用户四部曲
  7. Python离线安装依赖包
  8. 【Guava】基于guava的重试组件Guava-Retryer
  9. PHP 对字符串 进行填充
  10. 时间格式为yyyymmdd的String类型的时间,计算时间间隔有错误