Backbone, RequireJS ve Handlebars kullanarak bir rakipsiz web uygulaması oluşturuyoruz ve iyiyim, sadece merak ediyorum. Şu anda, bizim modellerin her sorta şuna benzer:RequireJS ile tembel yükleme nasıl yapılır?
define(['Backbone', 'js/thing/a', 'js/thing/b', 'js/lib/bob'], function(a, b, bob) {
return Backbone.Router.extend({
// stuff here
});
});
nerede şey/her ikisi vb Gidon şablonları, örneğin kendi bağımlılıkları var b, şey/Şimdi ne olacak olduğuna benim ana içinde .js, 'en üst düzey' yönlendiricilerin tümü yüklenir ve başlatılır; Her bir üst düzey yönlendiricinin, her birinin kendi bağımlılıklarına (şablonlar, yardımcılar, araçlar, vb.) sahip olduğu bir dizi bağımlılık (model, görünüm vb.) vardır. Temel olarak, büyük bir ağaç yapısı.
Buradaki sorun, tüm ağacın sayfa yüklemesinde çözülüp yüklendiğidir. Sanırım en azından optimizatörden geçecek ve büyük bir tek dosyayla (temelde bir modülerleştirme çerçevesine indirgemek için RequireJS'i azaltacağız). Ancak, 'istek üzerine' görünümler ve şablonlar gibi şeyler yükleyip yükleyemeyeceğinizi merak ediyorum. "Basitleştirilmiş CommonJS sarma" Orada
here açıkladı, bu yüzden denedim:
define(function(require) {
Backbone = require('Backbone');
return Backbone.Router.extend({
doStuff: function() {
var MyView = require('js/myView');
new MyView().render();
}
});
});
Ancak Chrome'un ağ denetçisi bakarak, öyle görünüyor ki RequireJS - her nasılsa, hatta tetikler rotayı tetiklemeden doStuff işleyici - hala myView
bağımlılığını yükler. Sorular:
- Bu gerçekten mümkün mü? RequireJS'de
require()
numaralı çağrıya gerçektedoStuff
rotasını tetiklemeden arama yapan siyah magnet'ler var mı? - Bu 'talep üzerine', RequireJS modüllerinin ve kaynaklarının tembel yüklenmesi hakkında teorik olarak doğru bir yol mu?
- Bu notu kullanırsanız, r.js optimize edici hala bildirildiği gibi çalışıyor mu?