SORU
3 Mayıs 2012, PERŞEMBE


Maliyeti ne olur '$(bu)'?

Burada insanlar genellikle önbellek jQuery nesne, bu kod ile: DOM öğeden oluşturulan öneririz

$('#container input').each(function() {
    $(this).addClass('fooClass');
    $(this).attr('data-bar', "bar");
    $(this).css('background-color', 'red');
});
  • JQuery nesne önbellekleme gerçekten bizim kod performansını artırmak mı?
  • Ne "perde" ne zaman bir WordPress kullanmak için kurucu bir DOM öğesi uzatır mısın? geride olur

CEVAP
3 Mayıs 2012, PERŞEMBE


Eğer jQuery tag info bu uyarı görüntülenir:

() JQuery işlevi $ pahalı. Tekrar tekrar arama son derece verimsiz.

Şey... sadece ne olduklarını öğrenmek için düzenli ifade ile ayrıştırılmış olsun dize seçiciler, gerçektir

quickExpr = /^(?:[^#<]*(<[\w\W] >)[^>]*$|#([\w\-]*)$)/

Eğer dize bir seçici (id hariç), DV find pahalı işlevi ile bir eşleşme bulmak için DOM erişir sonra:

} else if ( !context || context.jquery ) {
    return ( context || rootjQuery ).find( selector );
}

Yani Evet pahalı, ama bu seçiciler için geçerlidir!

Eğer DOMElement, tek bir eylem bir WordPress kullanmak yok. biz başarılı olursa, yeni oluşturulan bir WordPress kullanmak nesnenin bağlam olarak DOMElement parametre kaydetme ve 1 kapsamında uzunluğu ayarı

// Handle $(DOMElement)
if ( selector.nodeType ) {
    this.context = this[0] = selector; // Selector here is a DOMElement
    this.length = 1;
    return this;
}

some tests with jsPerf, yaptım ve gerçekten jQuery nesne önbelleğe alma yalnızca küçük bir etkiye sahip olduğunu buldum:

Bar chart, described below

Krom sadece %7 daha yavaş. (Birazcık YANİ daha önemli: 12%.)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Booredatwork.com

    Booredatwork

    5 Ocak 2009
  • jpmkm1

    jpmkm1

    4 NİSAN 2008
  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009