2012-02-21 64 views
8

olarak)() (ayrıştırın ve işlemek. 0 ve belki de bonus puanları için ayrıştırma ve derleme arasındaki farkın genel olarak ne olduğunu bize söyleyebilirdiniz.Fark() arasındaki fark nedir mustache.js

+1

Kaynağı kullanın, Luke. – Tomalak

+14

Kaynağı okudum, ama yine de farkı göremiyorum. – alnafie

cevap

15

bir API change introduced in version 0.8.0 ile

DÜZENLEME, compile() yöntem parse() entegre edilmiştir. Şablonları manuel olarak derlemek artık gerekli değil.


Mustache.parse()

Sözdizimsel şablonu ayrıştırır ve ondan bir JavaScript işlevi gövdesini (bir dize) oluşturur. Bu süreç sırasında şablonda karşılaşılan herhangi bir sözdizimi hatası bildirir.

Mustache.compile()

gerçek bir JavaScript işlevi oluşturmak için başarılı bir parse() dönen fonksiyon gövdesini kullanır. Oluşturulan işlev yeniden kullanım için bir önbellekte yerleştirilir.

Mustache.render()

, belirli bir şablonun ve gerçek veriler için uygulanır (compile() tarafından oluşturulan bir) uygun işlevi alır. Bu, ekranda gösterilmek istenen sonucu oluşturur.

+0

Teşekkürler Tomalak! Sunumdan önce derlemenin bazen performans açısından ne kadar mantıklı olabileceğini görebiliyorum, ama ayrıştırmayı kullanmanın mantıklı olabileceği bir durum düşünemiyorum. Nerede bir örnek verebilir misiniz? – alnafie

+0

@alnafie Ayrıştırma, her zaman, bir bilgisayarın hareket edebileceği bir şeye (isteğe göre Bıyık sözdizimine uymayan) bir dizgeyi dönüştürmenin ilk adımıdır. Tarayıcı tarafından okunduğunda, JavaScript kaynak kod dosyalarınıza tam olarak ne olur. Verdiğiniz girişi ayrıştırmadan bilgisayar hiçbir şey yapamaz. moustache.js, şablonu şablonun tam olarak söylediği şeyi yapmak için hazırlanmış bir JavaScript işlevine derler ve başka bir şey yoktur. Sonunda, bu her arama yaptığınızda ("render") şablonu yorumlamaktan çok daha hızlı çalışır. – Tomalak

+0

Ayrıştırma aşamasının gösterilmesi aynı zamanda bir memcache'de saklanmak ve ön uçta kullanmak için mantıklı olan bir şey verir. –

1

Yalnızca bir ipucu Mustache.parse(template) isteğe bağlıdır ve şablonun gelecekteki kullanımlarını hızlandırır. Bu, şablonunuzu bir dizi (büyük) veriyle yeniden kullanmak istediğinizde kullanışlıdır. Eğer durum böyle değilse, nihai sonucu oluşturan Mustache.render() numaralı telefona çağrı yeterlidir.