2011-11-15 20 views
8

Bir çerçeve (Django) kullanıyorum ve HTML yazma konusunda çok fazla esnekliğe sahibim. JQuery yazmanın yolunun daha iyi olabileceğini düşünüyorum.jQuery nasıl daha modüler kodlanır?

Örneðin, örneðin: sitedeki bir dðme düðmesi her yerde görünür, daha güzel bir düðmeye çeviririz (orijinal deðerleri ve davranýþlarý yerine getirir ve temelde deðiþtirir). Bu sadece bir örnektir, ancak siteye yerleştirilmiş html snippet'lerinin olduğu ve kapsayıcı yapının Javascript tarafından manipüle edilmesi gereken sayfada ne olduğu konusunda hiçbir fikri olmadığı bir çok kullanım durumu vardır. Yani 2 bölüm soru: sadece 50 (sadece sarılmış bir seti arar jQuery eklentisi) üzerinde kullanılabilecek 100 sayfa üzerinde bir şey yürütmek için verimli ve jQuery ile sadece gerçekten bir modüler yaklaşımı varsa, nasıl olurdu Ben bu konuda giderim?

+0

Belki Backbone.js? http://documentcloud.github.com/backbone/ – Iacks

+0

İyi soru, Ben sadece bu konuda düşünüyordum ve bazı önerileri görmek istiyorum –

+0

jQuery eklentileri kullanacağım. İşte size yardımcı olabilecek bazı klişe kodları. http://www.websanova.com/tutorials/jquery/jquery-plugin-development-boilerplate –

cevap

0

Uygun önbelleğe alma ile, tek bir minified .js dosyasının olması kesinlikle daha verimlidir. Sadece bir kez yüklenecek ve sadece sayfa başına 1 çağrı olacak. Kodunuzu modüle ederseniz, daha fazla istekte bulunacaksınız, buna ek olarak, herhangi bir zaman, ekstra js'yi dling etmeyeceksiniz, yine de önbelleğe alınacaktır. Sorunuzdaki temel sorun Modular programming ile ilgili ise

+0

Kodu birçok dosyaya yayarsanız endişeniz: çoklu kaynak dosyaları tek bir dosyada birleştirilebilir (ve birleştirilebilir) ve minimize edilebilir . Ancak bu, OP programlama sırasında endişelenmesi gereken bir şey değildir, bu kesinlikle bir yapım süresi endişesidir (ya da bunu anında yapan bir eklentiniz varsa, bir çalışma zamanı endişesi). Verimlilik bu durumda modülerliği etkilememelidir. ** (Edit) ** Ama ilk defa yanlış anladığımı düşünüyorum: haklısınız, tek bir js dosyası almak daha etkili olacaktır, bu komut dosyası gerektiğinde ek modüller yükleyecektir (eğer buysa buysa). – Groo

+0

Evet ama endişelenmek için daha fazla şey var ... Formlar için doğrulama var ... Widget'larım var ... İdeal olarak snippet'lerle biraz javascript ekleyebilirim (bunu yapabilir miyim?) Bu pubsub gibi bir şey için bir iş olur mu? Bir betiği tanımlayabilir ve $ (document) .hedefini sürekli olarak (ve sadece belgeyi önbelleğe hazırla) çağırır mıyım? Bu yaklaşım biraz fazla parçalı mıdır, belki de modüler olarak bir şeyleri çağırmak için bir yola ihtiyacım var ama kodları tanımlamanın bir yolunda daha fazla odaklanma var mı? – xckpd7

+0

@ xckpd7 Nihayetinde durumunuza bağlı olacağından buna cevap veremem. Kodunuzu modüler hale getirerek hangi sorunu çözmeye çalışıyorsunuz? – Andrew

1

. Şu anda Douglas Crockford's "JavaScript: The Good Parts" çalışıyorum. Bu kitaptan

:

Fonksiyonlar JavaScript temel modüler ünite bulunmaktadır. Kod yeniden kullanımı, bilgi saklaması ve kompozisyon için kullanılan . Aslında tüm jquery yapısı için yolumu

/* only one global variable to encapsulate all your code */ 

var MAINOBJ= {}; 

jQuery(document).ready(function($) { 

    /* modules */ 

    MAINOBJ.formStuff = { 
     results : [], 
     myFunction: function(){ 
      // code 
      results = MAINOBJ.ajaxStuff.loadResults(); 
      // code 
     } 
    } 

    MAINOBJ.ajaxStuff = { 
     results : [], 
     loadResults: function(){ 
      // code 
      return results; 
     } 
    } 

    /* DOM traversing */ 

    $('#myForm').submit(function(e) { 
     e.preventDefault(); 
     MAINOBJ.formStuff.myFunction(); 
    }); 
}) 

geçerli: javascript tüm fonksiyonlar nesnelerdir olarak

Yani, bu şekilde modül olarak üst düzey yapılarını tanımlamak için hazır bilgi gösterimi nesne kullanabilirsiniz Aynı kapsamı yabancı javascript koduyla paylaştığımız wordpress/joomla vb.

+0

Kodumu düzenlemek için bir nesnenin nasıl kullanıldığını sormuyorum ... Kodumu küçük modüler parçalar halinde nasıl karıştırıp eşleştirebileceğimi soruyorum. – xckpd7

+1

@ xckpd7 Aha. Anladım. Belki de [http://www.youtube.com/watch?v=vXjVFPosQHw] (Nicholas Zakas Ölçeklendirilebilir JavaScript Uygulama Mimarisi) aradığınız şeydir. Bu videoya dayanarak [http://net.tutsplus.com/tutorials/javascript-ajax/writing-modular-javascript-new-premium-tutorial/] (Modüler JavaScript Yazma) 'nda kısa bir eğitici var. –

İlgili konular