http://www.requirejs.org/

http://www.requirejs.cn/

http://requirejs.readthedocs.org/en/1.0.1/

目录结构:

|-root
    |-demo
        |-js
            |-a.1.0.js
            |-a.1.1.js
            |-b.js
            |-c.js
            |-main.js
            |-util.js
        |-index.html
    |-libs
        |-requirejs
            |-require.js

文件下载

命名及代码都是随意写的,只为学习requirejs的写法.熟悉requirejs的用法.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>requirejs demo</title>
<style>
div {
padding: 5px 10px;
}
</style>
<script type="text/javascript" src="../libs/requirejs/require.js" data-main="./js/main.js"></script>
</head>
<body>
<div id="Main" style="width:600px;height:400px;border:1px red solid;"></div>
</body>
</html>
//main.js
require.config({
baseUrl: 'js', // or ./js //baseUrl是从index.html开始计算的.
map: {
'b': {
'a': 'a.1.0'
},
'c': {
'a': 'a.1.1'
}
}
}); require(['b','c'], function(b, c){
b();
c();
});
//a.1.0.js
define([], function(){
function add(a, b){
return a+b;
}
function mul(a, b){
return a*b;
}
return {
'add': add,
'mul': mul
}
});
//a.1.1.js
define([], function(){
function add(a, b){
return a+b+1000;
}
function mul(a, b){
return a*b*100;
}
return {
'add': add,
'mul': mul
}
});
//b.js
define(['a', 'util'], function(aa, util){
function test(a, b){
util.log('Main', 'add: ' + aa.add(a, b));
util.log('Main', 'mul: ' + aa.mul(a, b));
}
return function(){test.call(this, 2, 3)};
});
//c.js
define(['a', 'util'], function(aa, util){
function test(a, b){
util.log('Main', 'add: ' + aa.add(a, b));
util.log('Main', 'mul: ' + aa.mul(a, b));
}
return function(){test.call(this, 2, 3)};
});
//util.js
define([], function(){
// var __id = '';
// var __tar = null;
// function setId(id){
// __id = id;
// }
// function _getEl(){
// return document.getElementById(__id);
// }
function log(id, content){
//var tar = __tar || __tar = _getEl();
var tar = document.getElementById(id);
var old = tar.innerHTML;
tar.innerHTML = old + '<br>' + content;
}
return {
'log': log
};
});

开始时,把paths理解为map了.后来出现错误,再去查API时才发现.(而且将paths误写成了path)

开始时,我在b.js和c.js中都写了require.config({...}),并将path(s)分别设置为 'a': 'a.1.0' 和 'a': 'a.1.1' <- 这显然是错误.

最开始时baseUrl也配置错误了.截图下来了.

requirejs实验001.对我来说,用AMD的方式来组织代码并不轻松.的更多相关文章

  1. requirejs实验002. r.js合并文件. 初体验.

    requirejs的官网上有介绍如何使用r.js合并,压缩文件的.http://requirejs.org/docs/optimization.html https://github.com/jrbu ...

  2. Matlab与C/C++联合编程之Matlab以MEX方式调用C代码(五)完整过程加示

    如下为本人亲证代码: 一: 编译器的安装与配置(环境不同,显示结果不同) 要使用MATLAB编译器,用户计算机上应用事先安装与MATLAB适配的以下任何一种ANSI C/C++编译器: 5.0.6.0 ...

  3. weimi 短信API post方式的简易代码。

    http://www.weimi.cc/example-csharp.html string mobile = "<enter your mobiles>", con ...

  4. repo+manifests+git方式管理安卓代码

    repo+manifests+git方式管理安卓代码 1.repo的获取 repo只是google用Python脚本写的调用git的一个脚本,主要是用来下载.管理Android项目的软件仓库.(也就是 ...

  5. Linux - Redmine使用方式 | SVN提交代码

    Redmine使用方式 | SVN提交代码 本文地址:http://blog.csdn.net/caroline_wendy RbTools 1. 安装: svn co https://dev.cxx ...

  6. react-native-pg-style使用方法(以最简单的方式编写样式代码,抛弃react-native标准的样式创建方式.)

    react-native-pg-style 以最简单的方式编写样式代码,抛弃react-native标准的样式创建方式. 看大家写的源码中都是按照react-native标准的样式创建方式来写样式代码 ...

  7. Spring MVC 实验2-Bean的几种装配方式及基本用法

    实验二:Bean的几种装配方式及基本用法  实验目的: (1)掌握2种基于XML的装配方式:设值注入(Setter Injection)和构造注入(Constructor Injection) . ( ...

  8. 实验一:使用ADO.NET方式读数据

    第一步:创建Asp.net应用程序 在VS中,点击文件->新建->项目,按如图方式选择并输入: 第二步:新建产品浏览网页窗体Listing.aspx: 在项目SportsStoreEx上点 ...

  9. ELK学习实验001:Elastic Stack简介

    1 背景介绍 在我们日常生活中,我们经常需要回顾以前发生的一些事情:或者,当出现了一些问题的时候,可以从某些地方去查找原因,寻找发生问题的痕迹.无可避免需要用到文字的.图像的等等不同形式的记录.用计算 ...

随机推荐

  1. Codeforces Round #331 (Div. 2)C. Wilbur and Points 贪心

    C. Wilbur and Points Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/596/ ...

  2. C#调用WORD处理的实例代码(包含excel)

    最近程序人生(http://www.manong123.com)一个朋友让我帮他做一个小功能,其实就是把WORD文档里的内容存到数据库里去,可以实现搜索并转EXCEL的功能,需求很简单,想不到加上部署 ...

  3. [WebGL] Setting Up WebGL

    In this lesson we cover setting up WebGL for use, including creating a canvas, getting the WebGL ren ...

  4. python首次尝试——hello world

    百忙之中抽空学习python,但是令人惊讶的是连hello world都写不出来.

  5. 小白日记28:kali渗透测试之Web渗透-扫描工具-Nikto

    扫描工具-Nikto #WEB渗透 靶机:metasploitable 靶场:DVWA[默认账号/密码:admin/password] #新手先将DVWA的安全性,调到最低,可容易发现漏洞 侦察[减少 ...

  6. ESX虚拟机文件列表详解

    http://jackiechen.blog.51cto.com/196075/210492 关闭状态时的文件列表: *-flat.vmdk:虚拟机的原始磁盘文件,包含整个虚拟机镜像.   *.nvr ...

  7. SQL Server 2012数据导入SQL Server 2008

    SQL Server 2012可以降级到2008吗?没有找到方法,似乎也不支持.整理了一个变通的方法,把2012的数据和结构导出,然后再导入2008. 在 SQL Server 2012 使用 Sql ...

  8. 解决Android&eclipse无法RunAs的问题

    application不能运行,console显示 The connection to adb is down, and a severe error has occured. You must re ...

  9. Linux kill -9 和 kill -15 的区别

    “我的天呀!”,网页编辑没有自动保存草稿的功能.害的我昨天写的东西都没有了.算了,不计较这些了.反正也没写多少. 嘻嘻. 大家对kill -9 肯定非常熟悉,在工作中也经常用到.特别是你去重启tomc ...

  10. ceph运维命令合集

    一.集群 1.启动一个ceph进程 启动mon进程 [root@ceph-adm ~]#203.109 service ceph start mon.ceph-mon1 启动msd进程 [root@c ...