Я использую Titanium Appcelerator для разработки приложений с использованием JavaScript. Они предложили использовать подход CommonJS. Краткий пример CommonJS можно найти здесь.
На всю жизнь я до сих пор не могу понять, как структурировать свой код.
Пример:
/* Homescreen.js */
exports.createHomescreen = function () {
//load all required modules first
var videoPlayer = require('ui/videoPlayerModule');
var self = Ti.UI.createWindow({
width:'100%',
height:'100%'
})
var newPlayer = videoPlayer.createPlayer({
width:100
height:50
});
self.add(newPlayer);
return self;
}
Видеоплеермодуль
/* videoPlayerModule.js */
exports.createPlayer = function (object) {
//load all required modules first
var self = Ti.UI.createWindow({
width:object.width,
height:object.height
});
var exitVideoButton = Ti.UI.createButton({
width:100,
height:50
});
exitVideoButton.addEventListener('click',function(e){
self.close(); //When this window is closed, the memory isn't freed.
self = null; //Still the memory isn't cleared
});
self.add(exitVideoButton);
return(self);
}
У меня проблемы с выделением памяти, потому что всякий раз, когда я загружаю видеопроигрыватель и закрываю его, память никогда не очищается. Если я снова открою видеоплеер, память будет выделена СНОВА. Из-за этого использование памяти моим приложением увеличивается каждый раз, когда запускается видеоплеер.
Я знаю, что мой образ мыслей неверен. Я пропускаю что-то очень простое здесь. Может ли кто-нибудь дать мне знать, что я делаю не так?