Tôi đang bắt đầu một ứng dụng Titanium mới và muốn sử dụng các phương pháp hay nhất và tránh bị rò rỉ bộ nhớ từ khi di chuyển. Tôi mới sử dụng CommonJS cũng như nền tảng Titanium nói chung.Vui lòng giới thiệu cấu trúc dự án bằng titan sử dụng CommonJS
Thật không may có vẻ như tất cả các ứng dụng mẫu cho vòm titan trên Ti.include("/lib/module")
thay vì newer recommended best practice của require("/lib/module")
.
Điều tôi lo lắng là mức tiêu thụ bộ nhớ của việc sử dụng CommonJS có thể yêu cầu. Từ CommonJS Modules in Titanium documentation nó nói rằng các mô-đun sẽ được lưu trữ, điều này có nghĩa là nếu tôi truy cập một mô-đun mà tất cả các chức năng đó đột nhiên ở lại trong bộ nhớ ngay cả khi chúng nằm ngoài phạm vi?
Tôi đã bắt đầu một ứng dụng mới với cấu trúc sau
/ctrl # Model/UI controllers
/lib # libraries (common + 3rd party)
/ui # UI forms
/model # DAL objects for data store
Từ đây ứng dụng chính của tôi có một cái nhìn phong cách bảng điều khiển duy nhất mà được cấu trúc lỏng lẻo như sau:
(function() {
var getMenuItem = require("/ui/main").getMenuItem;
var win = Titanium.UI.createWindow({
title:'Main',
backgroundColor:'#fff'
});
var nav = Ti.UI.iPhone.createNavigationGroup({
window:win
});
var sect;
var data = [];
sect = Ti.UI.createTableViewSection();
data.push(sect);
sect.add(getMenuItem("Customers",
require("/ctrl/account").createCustMainWindow));
sect.add(getMenuItem("Schedules",
require("/ctrl/schedule").createScheduleMainWindow));
sect.add(getMenuItem("Settings"));
var menu = Titanium.UI.createTableView({
style: Ti.UI.iPhone.TableViewStyle.GROUPED,
data:data
});
win.add(menu);
menu.addEventListener('click',function(e) {
if (e.rowData.createWindow) {
var win = e.rowData.createWindow(nav);
nav.open(win);
}
});
var navWindow = Titanium.UI.createWindow();
navWindow.add(nav);
navWindow.open();
})();
Bất kỳ hướng dẫn về một cấu trúc dự án đúng được đánh giá cao.
Điều đó hoàn hảo, cấu trúc dự án chính xác là những gì tôi đã làm sau. –