2010-06-04 24 views
21

Kısa bir süre önce $() kullanarak jQuery()'u kullanarak yorum yapan bir podcast dinlemekteydim. Her zaman $() kullanıldı ve yeni bir nesne oluşturulduğu ve jQuery() kullanıldığında durumun böyle olmadığı belirtildi. Çevremdeydim ama bu konuyla ilgili bir şey bulamadım.

Bunun tipik bir örnek olmadığını anlıyorum, ancak bu sorunun cevabı ile ilgilenmemin sebebi şu.

Kullanıcının bir tarayıcıya bir gün boyunca (24 saat veya daha uzun süre) yüklenmesini ve jQuery aracılığıyla AJAX çağrısının sonucu olarak her 5 saniyede bir güncellemenin yapıldığı bir sayfam var (AJAX çağrı kısmı, DOM'ın güncellenmesiyle ilgisizdir - DOM'a yapılan güncelleme, bir HTML dizesi ve bir jQuery nesnesindeki bir çağrı .empty() ve .html()) kullanılarak yapılır.

bu işitme beri, sonradan jQuery() çağrılara $() aramaların hepsi açık, ama ben bilmek istiyorum:
jQuery() kötü bir uygulama kullanarak vs $() kullanıyor mu? İkisi arasında ihmal edilebilir bir fark var mı? Yoksa daha büyük projelerde fark edilebilir mi?

+0

Bunun hakkında gördüğüm en kötü şey, $() 'nin aranması zor olmasıdır, bu yüzden kapsamı değiştirmeye ihtiyacınız varsa o zaman bu zor olurdu – Earlz

+0

$() gibi bir nesne her seferinde bir nesne oluşturur. $ ("# öğesi") html ('buraya.'); . $ ("# Öğesi") slideUp(); '. Aynı öğeyi kullanıyorsanız, bunun yerine zincir çağrıları veya bunun gibi bir şey yapmalısınız - "var ele = $ (" # item "); ele.html ('buraya'); ele.slideUp(); ' –

+1

Ne podcast bu yüzden bunu önlemek için biliyorum. – Mark

cevap

21

Hayır, bu kötü bir uygulama değildir ve performans farkı yoktur. Aynı işlev örneğine başvurulur. $ ve jQuery tanımlayıcıları aynı işlev örneğine başvurur.
Bu jquery.js son satırında yapılır:

window.jQuery = window.$ = jQuery; 
+0

@Sadece 'jQuery' her zaman bellekte yeni bir nesne oluşturduğunda yin – Earlz

+1

Bu efsane diyorum, busted! http://dsc.discovery.com/tv/mythbusters/ – tvanfosson

4

Hayır - jQuery kaynak koduna bakabilirsiniz. $ JQuery için sadece başka diğer adıdır - son satır her şeyi söylüyor:

window.jQuery = window.$ = jQuery; 

kendiniz için buraya bakınız: http://code.jquery.com/jquery-latest.js

+0

Eğer '$' kullanan diğer kütüphane jQuery'den sonra gelirse? – Garrett

+0

Sonra jQuery.noConflict - http://api.jquery.com/jQuery.noConflict/ –

12

jQuery() üzerinde $() kullanarak tek sorun başka JavaScript çerçeve kullanır olasılığıdır de.

+3

kullanın ... ve bunun etrafında yollar var - noConflict üzerindeki belgelere bakın: http://api.jquery.com/ jQuery.noConflict/ – tvanfosson

+1

Ayrıca, birçok diğer çerçeve bu çatışmayı önlemek için (veya en azından dikkate almanın) yollarını sunmaktadır. – Kurucu

2

Benim için amaç, aynı kitapta her iki kütüphaneyi kullanmak isterseniz, Prototip gibi ana nesne olarak $ olarak kullanan diğer kütüphanelerle çarpışmayı önlemek veya kodunuzun nerede olduğunu bilmemenizdir. Kullanılmak üzere ...

2

$() vs jQuery() olduğundan emin misiniz? Belki de daha göze çarpan bir nokta da, performans vuruşlarının da yapmasıdır ve yeni js kodlayıcılar, sade js yapabildiklerinde gereksiz yere $() kullanırlar.

Yapmanız gerekmediğinde jQuery nesnesi oluşturmaktan kaçınmak iyi bir uygulamadır.

İlgili konular