JavaScript 在浏览器环境中的模块管理
如果需要,请自行复制下或下载列代码清单到本地运行(如果不修改源码,这些文件需要在同一目录 ,并且以下列文件名对应)
我只在Chrome浏览器中调试过(现在也没去处理浏览器兼容方面的问题)
1. 代码
/**
* < main.js >
* @DATE 2012/11/29
* @author maolion.j@gmail.com
*
*/
//
Define( "module2", Depend( "module1", "@module1.m1" ), function( require, exports ){
console.log( "invoke @module2" );
exports.name = "@module2";
require("module1").say();
require("module2").print("maolion");
} );
Use( a = Module( "module1.js", "@module1.m1", "@module1.m2", "@module2" ), function( require ){
console.log( "invoke Main" );
var b = require( "module1" );
var x = require( "@module2" );
var c = require( "@module1.m1" );
var d = require( "@module1.m2" );
var x = require( "module2" );
x.print( "joye" );
//console.log(x.name);
} );
2.代码
/**
* < module1.js >
* @DATE 2012/11/29
* @author maolion.j@gmail.com
*
*/
Define( "module1" , Depend( "@module2", "module2" ), function( require, exports, module1 ){
console.log( "invoke module1" );
require("module2").print( "World" );
exports.say = function(){
console.log( "Hi! " + require( "@module2" ).name );
}
});
Define( "module1.m1", function( require, exports, m1 ){
console.log( "invoke module1.m1" );
});
Define( "module1.m2", function( require, exports, m2 ){
console.log( "invoke module1.m2" );
});
3. 代码
/**
* < module2.js >
* @DATE 2012/11/29
* @author maolion.j@gmail.com
* http://www.huiyi8.com/yinxiao/
*/音效网
Define( "module2", function( require, exports, module2 ){
console.log( "invoke module2" );
exports.print = function( str ){
console.log( "Hello, " + str );
}
});
4. 代码
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Untitled</title>
<script type="text/javascript" src="Cox.Module.test.js"></script>
<script type="text/javascript" src="main.js"></script>
<script type="text/javascript">
confirm = function(){ return false };
</script>
</head>
<body>
<a href="/">index</a>
</body>
</html>
JavaScript 在浏览器环境中的模块管理的更多相关文章
- 分布式环境中,模块数据交互协议分析 (百度brpc)
1. 背景 之前听到同事说,要为自己的模块考虑写个数据协议.今天有空想了一下.写出来,方便后续使用. 开源代码brpc中可以支持多种协议,nshead.redis.mongo等20多种协议. 2. 什 ...
- Linux搭建python环境中cx_Oracle模块安装遇到的问题与解决方法
安装或使用cx_Oracle时,需要用到Oracel的链接库,如libclntsh.so.11.1,否则会有各种各样的错误信息. 安装Oracle Instant Client就可得到这个链接库,避免 ...
- [译]JavaScript检测浏览器前缀
原文地址: Detect Vendor Prefix with JavaScript 不管浏览器私有前缀的现状如何,我们还是要与之为伴,并且有时候还需要利用它来做一些事情.这些前缀可以用于CSS(比如 ...
- Javascript的二进制数据处理学习 ——nodejs环境和浏览器环境分别分析
以前用JavaScript主要是处理常规的数字.字符串.数组对象等数据,基本没有试过用JavaScript处理二进制数据块,最近的项目中涉及到这方面的东西,就花一段时间学了下这方面的API,在此总结一 ...
- AMD:浏览器中的模块规范
前面提到,为实现与Node.js相同方式的模块写法,大牛们做了很多努力. 但浏览器环境不同于服务器端,它的模块有一个HTTP请求过程(而Node.js的模块文件就在本地),这个请求过程多数使用scri ...
- javascript中的内存管理和垃圾回收
前面的话 不管什么程序语言,内存生命周期基本是一致的:首先,分配需要的内存:然后,使用分配到的内存:最后,释放其内存.而对于第三个步骤,何时释放内存及释放哪些变量的内存,则需要使用垃圾回收机制.本文将 ...
- 浏览器环境下Javascript脚本加载与执行探析之DOMContentLoaded
在”浏览器环境下Javascript脚本加载与执行探析“系列文章的前几篇,分别针对浏览器环境下JavaScript加载与执行相关的知识点或者属性进行了探究,感兴趣的同学可以先行阅读前几篇文章,了解相关 ...
- 深入理解javascript中的焦点管理
× 目录 [1]焦点元素 [2]获得焦点 [3]失去焦点[4]焦点事件 前面的话 焦点作为javascript中的一个重要功能,基本上和页面交互都离不开焦点.但却少有人对焦点管理系统地做总结归纳.本文 ...
- 在 WebSphere Application Server V7 集群环境中管理 HTTP session[阅读]
http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1012_dingsj_wascluster/1012_ding ...
随机推荐
- mq推送消息
场景:BDM(实名制系统)同步数据到CRNS(实名制系统) 一,首先建个队列,队列名字为 bdm_empolyeeinfo_crns 二,applicationContext-rabbitmq.xml ...
- Relocation(状压DP)
Description Emma and Eric are moving to their new house they bought after returning from their honey ...
- BZOJ 1924: [Sdoi2010]所驼门王的宝藏 【tarjan】
Description 在宽广的非洲荒漠中,生活着一群勤劳勇敢的羊驼家族.被族人恭称为“先 知”的Alpaca L. Sotomon 是这个家族的领袖,外人也称其为“所驼门王”.所 驼门王毕生致力于维 ...
- hud 2073
#include<stdio.h> #include<math.h> int main() { int i,j,k,n,m,t; double a]; a; for;i++) ...
- Lucene的例子
lucene爬数据库中的数据无非也是查询数据.所有我们用lucene搜索数据主要有下面几个步骤:(代码紧供参考) 一 , 从数据库中查数据 ====爬数据 ------------- ...
- UltraEdit-14.10.0.1024版本语法着色配置
用了UltraEdit有段时间了,一直没做语法着色,当做普通文本编辑器使用,这也太委屈这个“神器”了. 今天就让它物尽其用吧.体验一把UltraEdit的语法高亮功能. 参考:http://www.1 ...
- [NOIP2002] 提高组 洛谷P1033 自由落体
题目描述 在高为 H 的天花板上有 n 个小球,体积不计,位置分别为 0,1,2,….n-1.在地面上有一个小车(长为 L,高为 K,距原点距离为 S1).已知小球下落距离计算公式为 d=1/2*g* ...
- 建设DevOps统一运维监控平台,先从日志监控说起
https://blog.csdn.net/jessise_zhan/article/details/80129915 https://blog.csdn.net/JThink_/article/de ...
- 使用微软的 ilasm 和 ildasm 对. net程序进行编译和反编译
为了保证示例的完整性,请先准备好一个 c#写的 exe 程序,或者可以使用我提供的 exe 程序也可以(很简单,为了测试这里仅生成了一个带按钮的 winform,单击按钮提示弹窗) Test WinF ...
- sql 语句哪里添加单引号问题
1.sql 语句哪里添加单引号问题,哪些地方必须加双引号,否则sql语句会报错? :涉及varchar的值的时候,必须有单引号包括varchar值.int等其他字段类型,则不需要加单引号包括. 如: ...