Eşzamansız modül tanımı
Asenkron modül tanımı ( AMD ) bir olduğunu JavaScript - programlama arayüzü sağlayan modülleri uyumsuz yüklenebilir ve onların bağımlılıklarını. Böylece, işlevsel ve monolitik JavaScript ortamında iki temel yazılım geliştirme, modülerleştirme ve yeniden kullanım kavramlarını eşler . Modülerleştirme, bir Javascript uygulamasının ayrı ayrı geliştirilebilen ve test edilebilen (böl ve ele geçir ) ayrı alt bileşenlere bölünmesine izin verir . Açık arayüzler sayesinde AMD modülleri diğer yazılım projelerinde yeniden kullanılabilir.
Prosedür büyük ölçüde kontrol - tasarım modelinin (IoC modeli) tersine çevrilmesine dayanmaktadır . Modül, IoC'deki fasulye terimine karşılık gelir. Bu, JavaScript'in modüler olarak oluşturulmasını sağlar. Sonuç karşılaştırılabilir modülleri bulunmaktadır Java - sınıfları vardır ve tıpkı miras yoluyla uzatılabilir. Her modül, Java sınıfına benzer şekilde kendi dosyasında kaydedilmelidir.
Modülerleştirmenin avantajları özellikle JavaScript'in özellikle sık kullanıldığı tarayıcı ortamında belirgindir . Senkron yüklemede olduğu gibi her şey değil, yalnızca gerekli modüller yüklenir. Bir yandan bu, kodun performansını artırır ve diğer yandan , özellikle etki alanları arası erişim sorunları durumunda hata ayıklamayı kolaylaştırır . Ayrıca, kopyalayıp yapıştırarak veya sunucu tarafında birleştirme yoluyla taşımak zorunda kalmadan tek tek kod parçalarının daha iyi yeniden kullanılabilirliğini sağlar . Bu, global değişkenlerin kullanımının minimuma indirilmesi ile sonuçlanır ve böylece ad alanı kirliliğinin neden olduğu sorunları önemli ölçüde azaltır.
Bununla birlikte, kodun birçok tekil dosya üzerinde dağıtımının belirtilmesinin dezavantajları da vardır. Her dosya, tarayıcı tarafından ayrı bir HTTP yükleme çağrısında bulunmalıdır ; bu, birçok küçük dosyada çok fazla protokol - ek yük üretebilir. Bu, özellikle yüksek gecikmeli bağlantılarda gözle görülür bir gecikmeye neden olabilir . Bununla birlikte, çeşitli Javascript dosyalarını çağırırken ortaya çıkan bu ek yük, sunucu tarafı paketlemesi kullanılarak telafi edilebilir.
AMD formatını uygulamak için çeşitli AMD çerçeveleri mevcuttur, örneğin B. RequireJS , Dojosu yükleyici veya curl.js .
taahhüt
AMD formatı, bağımlılıkların bildirilmesini ve doğru yüklenmesini sağlayan özel bir modül tanımı veya bileşen tanımı sağlar. Modül tanımı bu nedenle programlama kurallarına dayanmaktadır. Bu kural, ücretsiz olarak kullanılabilen birçok Javascript kitaplığında değişmiştir. B. jQuery veya Socket.IO zorunlu.
define("Name des Moduls", ["Abhängigkeit1", "Abhängigkeit2"], factory);
Yukarıdaki program kodu, modül tanımını AMD formatında göstermektedir. Modülün adına ve bağımlılıklara ek olarak, modülün üretildiği bir fabrika yöntemi tanımlanır. Bu fabrika yöntemi, bileşeni somutlaştırmak ve olası arabirim nesnelerini dışa aktarmak için kullanılır. Görüldüğü gibi, AMD formatının kullanımı için, tanımlama yöntemini sunan ve çeşitli bileşenleri başlatan ve bağımlılıkları enjekte eden bir Javascript kitaplığı gereklidir. AMD ortamında buna AMD yükleyici denir. Prosedür büyük ölçüde soyut fabrikanın modeline ve bir IoC konteyneri ile bağımlılık enjeksiyonuna karşılık gelir . Bu şekilde, herhangi bir bileşen somutlaştırılabilir ve gerekli bağımlılıklar uygun sırada sağlanabilir. Bir JS uygulamasının tek tek bileşenleri birbirinden ayrılabilir.
define('PieChartModule', ['area', 'graph'],
function ( area, graph ) {
// Beschreibung des Plot-Modules
var plotModuleExport = {
plot: function(width, height, data){
// Einfache Nutzung der Module “graph” und “area”
return graph.drawPie(area.randomGrid(width, height), data);
}
};
return plotModuleExport;
};
);