【发布时间】:2016-01-22 13:35:18
【问题描述】:
我正在开发由其他人编写的 Dojo 应用程序。我是 Dojo 的新手,但发现要减少 http 请求,我需要生成一个“构建”版本。我已经这样做了,AFAICT(我至少得到了一个压缩脚本),但是当使用构建的脚本时,以前可用的函数都不起作用(它们是“未定义的”)。
此外,在试图弄清楚这一点时,看起来这将是使代码与 AMD 兼容的一个好点(此代码与 AMD 兼容吗?)。这将如何与以下示例一起使用?从阅读看来,我可能需要将每个现有函数从这样的脚本变成一个模块,这会产生数百个脚本,而且感觉不对。如何最好地转换这样的代码,使其与 AMD 兼容和可构建?
我有 15 个左右的 .js 脚本,它们都包含不同数量的以这种方式编写的函数...
TIA!
var somethingStatus = false;
somethingInit();
function somethingInit() {
require(["dojo/ready", "dojo/dom", "dojo/dom-construct", "dojo/cookie", "dojo/json", "dojo/domReady!"], function(ready, dom, domConstruct) {
ready(function() {
var content = '';
// content generated here, then...
domConstruct.place(content, dom.byId('body'));
});
});
}
function somethingToTop(target) {
require(["dojo/dom", "dojo/dom-style", "dojo/_base/fx", "dojo/window", "dojo/domReady!"], function(dom, domStyle, fx, win) {
var vs = win.getBox();
somethingBarStatus = true;
fx.animateProperty({
node: dom.byId('somethingBar'),
properties: {
top: { start: domStyle.get('somethingBar', 'top'), end: 0 },
height: { start: domStyle.get('somethingBar', 'height') + (domStyle.get("somethingBar", "padding") * 2), end: vs.h }
},
duration: 500,
onEnd: function() {
document.location = 'http://192.168.0.1' + target;
}
}).play();
});
}
function somethingEmptyTop() {
require(["dojo/dom", "dojo/dom-construct", "dojo/domReady!"], function(dom, domConstruct) {
globalContainerEmpty('somethingTop'); // this function is in another .js file, constructed similarly to this
});
}
// many more functions like this below and across other scripts!
【问题讨论】:
标签: javascript dojo amd