2013-04-23 12 views
7

jQuery öğesinin $ .ajax() işlevini kullanan çok basit bir JavaScript kitaplığı yazıyorum.jQuery gerektiren bir JavaScript kitaplığını paketlemenin en iyi yolu?

Bu bağımlılığı nasıl yönetmeliyim? Kütüphanem kullanıcıları jQuery'yi kendilerine dahil etmelerini ister mi? Kütüphanede jQuery'yi yüklemek için RequireJS veya script etiket ekleme gibi bir şey kullanmalı mıyım? İkincisi daha iyi olacaksa, kullanıcı zaten jQuery kullanıyorsa çakışma yaratmadan bunu nasıl yapabilirim?

+1

Kitaplığınızı jQuery'yi kendi başlarına kullanacak birini kullanmasını isterim. Yeterince yaygındır ve kendi kodları içinde herhangi bir uyumsuzluğu dikkate almaları gerektiğinin altını çizecektir. –

+2

Eğer jQuery dahil değildir ve requries jQuery kullanılırsa, kitaplığınızın bir istisna oluşturmasını öneririm. JQuery'yi otomatik olarak paketlemek, jQuery'nin zaten dahil edilmesini gerektiren durumlar için çok daha kötü baş ağrılarına neden olabilir. –

+5

Tüm kütüphane ihtiyaçlarınız '$ .ajax' ise, sadece kendi XMLHttpRequest'lerinizi yapın. Üzgünüm, ama sadece XHR için jQuery gerektirecek somun olurdu. –

cevap

2

Bence jQuery'den başka bağımlılıklarınız var.

jQuery tek bağımlılığınız ise ve kitaplığınızın kendi modül bağımlılık sistemine gerçekten ihtiyacı yoksa, RequireJS'yi önermem. Sadece kütüphanenizde jQuery varlığını kontrol edin ve aksi halde bir hata atın. Ancak, esnek ve bakımı kolay bir kütüphane yapmak istiyorsanız, bazı yükleyicileri (RequireJS gibi) kullanarak salık veririm. Bu aynı zamanda size birleştirmek ve kütüphanenizi

0

Kullanıcılara önce jquery eklemelerini öneriyorum. Herhangi bir örnek seçmeme izin verirseniz, bunun gerçekten kullanılan bir yaklaşım olduğunu göreceksiniz (örn. .net framework)

1

Ben orijinal sonrası önerilen aptal küçük bana olarak JSON veri getirmek için kendi işlevi yazma sona erdi paketi sağlayan bir build system kullanmanın avantaj sağlar. Cevaplayan herkese teşekkürler. Javascript kütüphanesi bağımlılıkları ile ilgili rehberlik, bu diğer rotaya indiğimde bile çok değerliydi.

JSON'u getirmek için kendi işlevimi yazmak için bir kılavuz olarak this Stack Overflow answer'u kullandım. Verileri eşzamanlı olarak getirmem gerekiyordu, bu yüzden işlevi this other article'da özetlenen ipuçlarıyla ayarladım.

Sonunda işlevim şunun gibi görünüyordu. Umarım birileri gelir.

var fetchJSON = function(path, callback) { 
    var httpRequest = new XMLHttpRequest(); 
    httpRequest.open('GET', path, false); 
    httpRequest.send(); 
    if (httpRequest.readyState === 4) { 
    if (httpRequest.status === 200) { 
     var data = JSON.parse(httpRequest.responseText); 
     if (callback) callback(data); 
    } 
    } 
} 
+0

Gereksinim duymanız halinde bunun daha eski IE'lerde çalışmayacağını unutmayın. – blockhead

+0

Geri bildiriminiz için teşekkürler, Blockhead. Hangi bölüm uyumluluk bozuyor? JSON.parse çağrısı? –

+0

Sadece son cevabın [cevap] bölümünde yanıtlandığını gördüm (http://stackoverflow.com/questions/14388452/how-do-i-load-a-json-object-from-a-file-with-ajax/14388512 # 14388512) Yukarıda referans yapıyorum. –

İlgili konular