requirejs实验001.对我来说,用AMD的方式来组织代码并不轻松.
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的方式来组织代码并不轻松.的更多相关文章
- requirejs实验002. r.js合并文件. 初体验.
requirejs的官网上有介绍如何使用r.js合并,压缩文件的.http://requirejs.org/docs/optimization.html https://github.com/jrbu ...
- Matlab与C/C++联合编程之Matlab以MEX方式调用C代码(五)完整过程加示
如下为本人亲证代码: 一: 编译器的安装与配置(环境不同,显示结果不同) 要使用MATLAB编译器,用户计算机上应用事先安装与MATLAB适配的以下任何一种ANSI C/C++编译器: 5.0.6.0 ...
- weimi 短信API post方式的简易代码。
http://www.weimi.cc/example-csharp.html string mobile = "<enter your mobiles>", con ...
- repo+manifests+git方式管理安卓代码
repo+manifests+git方式管理安卓代码 1.repo的获取 repo只是google用Python脚本写的调用git的一个脚本,主要是用来下载.管理Android项目的软件仓库.(也就是 ...
- Linux - Redmine使用方式 | SVN提交代码
Redmine使用方式 | SVN提交代码 本文地址:http://blog.csdn.net/caroline_wendy RbTools 1. 安装: svn co https://dev.cxx ...
- react-native-pg-style使用方法(以最简单的方式编写样式代码,抛弃react-native标准的样式创建方式.)
react-native-pg-style 以最简单的方式编写样式代码,抛弃react-native标准的样式创建方式. 看大家写的源码中都是按照react-native标准的样式创建方式来写样式代码 ...
- Spring MVC 实验2-Bean的几种装配方式及基本用法
实验二:Bean的几种装配方式及基本用法 实验目的: (1)掌握2种基于XML的装配方式:设值注入(Setter Injection)和构造注入(Constructor Injection) . ( ...
- 实验一:使用ADO.NET方式读数据
第一步:创建Asp.net应用程序 在VS中,点击文件->新建->项目,按如图方式选择并输入: 第二步:新建产品浏览网页窗体Listing.aspx: 在项目SportsStoreEx上点 ...
- ELK学习实验001:Elastic Stack简介
1 背景介绍 在我们日常生活中,我们经常需要回顾以前发生的一些事情:或者,当出现了一些问题的时候,可以从某些地方去查找原因,寻找发生问题的痕迹.无可避免需要用到文字的.图像的等等不同形式的记录.用计算 ...
随机推荐
- 动态创建组件TEdit
//动态创建组件TEdit procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftSt ...
- RapeLay(电车之狼R)的结局介绍 (隐藏结局攻略)
RapeLay(电车之狼R)的结局介绍 (隐藏结局) 必备知识要让MM怀孕非常easy.起初刚进入调教模式后.仅仅要H一次 MM就開始有时期状态. 生理(连上有红晕) ->不详状态(闭目第一次) ...
- 一入python深似海--dict(字典)的一种实现
以下是python中字典的一种实现.用list数据结构实现字典.详细是这种:[[(key1,value1),(key2,value2),...],[],[],...] 内部每个hash地址是一个lis ...
- iOS开发——UI_swift篇&UITableView实现单元格展开与隐藏
UITableView实现单元格展开与隐藏 关于UITableView的展开的收缩在前面的文章我已经结束,就是使用代理,通知,block传值的时候实现的,当时是使用一个Bool值来实现,最后使用着三 ...
- iOS开发——总结篇&关键字介绍
关键字介绍 在做iOS开发中,系统的各个关键字处处都是,但是未必每一个关键字都是那么的明白,所以罗列出一些关键字供大家互相学习,有不完善之处请指正,谢谢 atomic atomic是Objc使用的一种 ...
- Ubuntu配置ssh server
SSH-Server配置指南 一.SSH简介 SSH (Secure Shell)是一个应用程序中提供安全通信的协议,通过SSH协议可以安全地访问服务器,因为SSH 具有成熟的公钥加密体系,在数据进行 ...
- UTF8 与 UTF16 编码
Unicode 的发展,英文好的直接去 unicode.org 上去看吧,不好的可以移步到这里 看dengyunze的总结:<关于UTF8,UTF16,UTF32,UTF16-LE,UTF16- ...
- javaScript入门--引用类型
前面提到过,引用类型的值便是对象,在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起,而对象则是某个特定引用类型的实例. var a=new Object(); 上面便声明了 ...
- C++编译器的函数名修饰规则
我们知道在C++中有函数重载这样一个东西,当我们定义了几个功能类似且函数名是一样的函数的时候,只要它的参数列表不同,编译是可以通过的,但是在C中是不可以的. double add(double a, ...
- [改善Java代码]子列表只是原列表的一个视图
List接口提供了subList方法,其作用是返回一个列表的子列表.这与String类的subString有点类似.但是他们的功能是否相同?看代码: import java.util.ArrayLis ...