startup() được định nghĩa trong _Widget và chỉ đơn giản là "một phần của vòng đời". Đây là bước cuối cùng trong vòng đời của widget, và không bắt buộc bởi tất cả các widget. Trường hợp phổ biến nhất mà nó là hoàn toàn cần thiết là khi lập trình tạo widget bố trí. Nó được sử dụng như một cách để ngăn ngừa các tính toán dư thừa khi trẻ cần kích thước. Ví dụ, một BorderContainer.
var bc = new dijit.layout.BorderContainer({
style:"height:200px; width:200px"
});
// can call bc.startup() now, and the BorderContainer will resize
// all children each time a new child is added. Or, we can add all
// our children now, then trigger startup() and do it all at once.
var top = new dijit.layout.ContentPane({
region:"top", style:"height:100px"
}).placeAt(bc);
var mid = new dijit.layout.ContentPane({ region:"center" }).placeAt(bc);
// now BC will do the calculations, rather than in between each
// the above addChild/placeAt calls.
bc.startup();
Khởi động tự động được gọi bởi trình phân tích cú pháp trong trường hợp parseOnLoad: thực thi đúng hoặc thủ công. Trình phân tích cú pháp trì hoãn việc gọi khởi động() cho đến khi tất cả các tiện ích con tìm thấy đã được tạo ra một cách thích hợp.
dijit.Dialog là một trường hợp lạ. startup() PHẢI được gọi trên widget này.
var dialog = new dijit.Dialog({ title:"Hmm", href:"foo.html" });
dialog.startup();
dialog.show();
Hầu hết các widget không yêu cầu khởi động gọi, nhưng trong trường hợp một cái gì đó kế thừa từ _Widget không ghi đè lên các thành viên khởi động, cuộc gọi thực chất là một khung cảnh không-op this._started = true; Nếu bạn tạo hàm startup() của riêng bạn, bạn nên gọi this.inherited (arguments) hoặc đơn giản là đặt trình kích hoạt _started theo cách thủ công.
Trong Dojo 1.4, vòng đời ở đây đã được điều chỉnh một chút.Trước đây, một widget với widgetsInTemplate: true sẽ gọi startup() trên các widget con TRƯỚC KHI khởi động() trên parent. Trong 1,4 khởi động của trẻ em() sẽ được gọi là SAU khởi động cha mẹ(). Hành vi này là đệ quy cho tuy nhiên nhiều cấp độ của các vật dụng lồng nhau với widgetsInTemplate: đúng là instantiated. Nó luôn luôn là "an toàn" để gọi .startup(), mặc dù nếu bạn "biết" (vì nó là một tiện ích điểm cuối đơn giản, hoặc mã _Widget tùy chỉnh của riêng bạn), bạn có thể bỏ qua cuộc gọi.
Chỉ để biết thông tin về hành vi reg dijit.Dialog đã thay đổi một chút ngay bây giờ gọi chương trình tự động gọi khởi động từ bên trong hàm – Gaurav