看了一遍關於《擴展SeaJS模塊定義中的module參數的應用示例》講得很不錯!本身就嘗試一下!javascript
http://limu.iteye.com/blog/1136712 html
https://github.com/seajs/seajs/issues/67java
爲了可以預加載公共部分模塊!使用sea.js提供的preload模塊功能!git
在安裝了官方的項目工具spm後,直接 spm install -g seajs-preloadgithub
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>sea.js</title> <script type="text/javascript" src="../../sea-modules/sea.js"></script> <script type="text/javascript" src="../../sea-modules/seajs-preload.js"></script> </head> <body> <div id="block">1111</div> </body> </html> <script type="text/javascript"> seajs.config({ base : "../../sea-modules/", paths : { "mPath" : "../../static/module/", }, alias : { "public" : "mPath/public" }, preload : [ "public" ] }); seajs.use("mPath/moduleA"); </script>
公共模塊部分,模仿了jqery的html方法工具
define(function(require, exports, module) { var mp = module.constructor.prototype; mp.mJq = function() { var elem; (function(args){ if (typeof args[0] === 'string') { elem = document.getElementById(args[0]); } })(arguments); var mJquery = (function(){ return elem; })(); mJquery.html = function() { if (typeof elem == 'object' && typeof arguments[0] != 'undefined') { elem.innerHTML = arguments[0]; } else { return elem.innerHTML; } } return mJquery; }; });
在其餘模塊調用ui
define(function(require, exports, module) { var $ = module.mJq; console.log($("block").html()); $("block").html("halo"); });