SORU
22 Ocak 2011, CUMARTESİ


Ne zaman kullanılacağını anlamak Require.JS

Sadece require.js ile çalışmaya başladım ve biraz hangi kullanılmalıdır uygun gibi hallerde bu gibi durumlarda kullanmak için doğru bir şekilde anlamış değilim.

Ben şu anda bir şeyler require.js-burada nasıl. İki işlevi var, functionA() functionB(). Bu işlevlerin her ikisi de ek bir fonksiyon functionC() düzgün çalışması için gereklidir.

Ben sadece functionC yüklemek istiyorum() gerektiğinde, yani ne zaman işlevsel() veya functionB() olarak adlandırılan olacak. Aşağıdaki dosyalar var:

functionC.js

functionC(){
  //do stuff
}

functionA.js

functionA(){  
  define(['functionC'],function(){
    //functionC() is loaded because it is listed as a dependency, so we can proceed
    //do some functionA() stuff
  });
}

functionB.js

functionB(){  
  define(['functionC'],function(){
    //functionC() is loaded because it is listed as a dependency, so we can proceed
    //do some functionB() stuff
  });
}

Bu doğru ayarlanmış mı? Ve eğer hem işlevsel aradım sonunda ve functionB() aynı sayfada, ekstra iş onlar functionc.js dosya yükü iki yana yapılıyor? Eğer öyleyse, sorun olur mu? Ve eğer, onlar ilk functionc.js henüz yüklendi, ve eğer henüz varsa bile bu yükü tek olmadığını kontrol kurmak için bir yol var mı? Son olarak, bu Require.JS bu şekilde kullanılması uygun olur?

CEVAP
7 ŞUBAT 2011, PAZARTESİ


define() tek bir modül tanımlamak için kullanılır. Kod parçası dinamik yüklü olması gereken yerde yukarıdaki örnek için,, require() kullanarak daha uygun

functionA.js

functionA(){
  require(['functionC'],function(functionC){
    //use funcC in here to call functionC
  });
}

Bazı notlar:

  • require([]) asenkron, eğer functionA arayan bu işlevin dönüş değeri bekliyor, muhtemelen hataları olacaktır. functionA functionA işini bitirince, çağrılan bir geri arama kabul ederse iyi olur.
  • Yukarıdaki kodu functionA; ancak, ilk görüşme, ceza sadece yüklenir functionC.js, bir kez yüklemek için alınacak diye bir şey yok, her çağrı için require() arayacak. *İlk kez 20* çağrılan, yük functionC.js ama kalan zamanda, RequireJS bilir zaten yüklü, bu yüzden Ara function(functionC){} fonksiyonu olmayan talep functionC.js tekrar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Manuel Vizcaino

    Manuel Vizca

    27 Mayıs 2008
  • Rootjunky.com

    Rootjunky.co

    22 EKİM 2011
  • Schmittastic Jr.

    Schmittastic

    19 Mart 2013