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 背景介绍 在我们日常生活中,我们经常需要回顾以前发生的一些事情:或者,当出现了一些问题的时候,可以从某些地方去查找原因,寻找发生问题的痕迹.无可避免需要用到文字的.图像的等等不同形式的记录.用计算 ...
随机推荐
- Swift学习笔记六
集合类型(Collection Type) Swift提供三种主要的集合类型:数组(array).集合(set).字典(dictionary).数组是有序的值序列,集合是无序的值序列,字典是无序的键值 ...
- AlertView with password
1. setAlertViewStyle:UIAlertViewStyleSecureTextInput UIAlertView *alertView = [[UIAlertView alloc] i ...
- QT5 串口收发实例代码
以下代码是自己测试门禁系统使用的 主要用到了串口的接收和发送 开发环境:xp QT5.1.1 串口:38400 N 8 1 自动检测可用串口 在xp上测试没问题 有些usb转串口会出现波特 ...
- HDU 1080 DP
匹配两个人相似度. A,G,C.T.每两个都会有一个相应的值,给出两串基因.长度能够不一样,能够在基因中间加_使两串长度一样.然后有一个相应值.求最大相应值. 先做出相应的表 DP方程: x=dp[i ...
- 用adb pull命令从android系统中读取文件失败的原因及解决办法
问题:使用adb pull命令从android系统中读取文件失败.显示:Permission denied 原因:是由于文件权限原因引起. 使用ls -l命令查看android系统中的 ...
- Mac电脑没有声音,苹果电脑没有声音怎么办
对于使用 Windows 系统电脑的小伙伴来说,可能有很多人会遇到电脑没有声音的问题.苹果 Mac 电脑也会出现没有声音的问题,不过相对较少.这里以我遇到的一个没有声音的问题为例,简单介绍处解决的 ...
- Koa2 源码解析(1)
Koa2 源码解析 其实本来不想写这个系列文章的,因为Koa本身很精简,一共就4个文件,千十来行代码. 但是因为想写 egg[1] 的源码解析,而egg是基于Koa2的,所以就先写个Koa2的吧,用作 ...
- 小白日记11:kali渗透测试之服务扫描-banner、dmitry、nmap特征库、操作系统识别、SNMP
服务扫描 不能单纯的以端口辨别服务.很多网络服务是漏洞频发的高危对象,对网络上的特定服务进行扫描,往往能让我们少走弯路,增加渗透成功的几率.确定开放端口后,通常会对相应端口上所运行服务的信息进行更深入 ...
- UITableViewCell高度自适应探索--AutoLayout结合Frame
UITableViewCell高度自适应探索--UITableView+FDTemplateLayoutCell地址: http://www.jianshu.com/p/7839e3a273a6UIT ...
- TCP/IP协议原理与应用笔记18:构成子网和超网
1. 引言: (1)类别IP编址(Classful IP)的缺陷 • 固定的3种IP网络规模 C类地址:少于255台主机的网络 B类地址:介于255~65535台主机的网络 ...