Я работаю над приложением Dojo, написанным кем-то другим. Я новичок в Dojo, но обнаружил, что для сокращения HTTP-запросов мне нужно создать версию «build». Это я сделал, AFAICT (я получаю как минимум один сжатый скрипт), но при использовании встроенного скрипта ни одна из функций, которые ранее не работали (они «неопределены»).Проблема с Dojo Build and Conversion для AMD
Кроме того, пытаясь понять это, похоже, было бы неплохо сделать код AMD совместимым (является ли этот код совместимым с AMD). Как это будет работать с примерами, такими как ниже? Из чтения видно, что мне может понадобиться сделать каждую существующую функцию из сценариев, подобных этому, в модуль, который создавал бы сотни скриптов и не чувствовал себя хорошо. Как лучше всего конвертировать такой код, чтобы он был совместим с AMD и был построен?
У меня 15 или так .js скрипты все содержащие различное число функций, написанных таким образом ...
ТИА!
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!
Спасибо, Кен. Это на самом деле делает какой-то смысл (для меня) и дало мне некоторый новый энтузиазм! – FishBarFood
Оглядываясь на учебник модулей Dojo - есть ли разница между вашим примером, где вы переносите функции в «var util = {...}» и используете «util = somethingInit();» и обертывание в return {.. .} вместо этого? – FishBarFood
К сожалению, это похоже на опечатку в моем примере. Я хотел сделать 'util.somethingInit();' для запуска сразу же, как то, что сделал ваш пример, а затем 'return util;'. Я исправлю это. (Это единственная причина, по которой я сделал переменную, поэтому я мог бы ее самостоятельно ссылаться). –