2013-10-29 8 views
15

Tüm modülleri tek bir kaynağa birleştirmek için, her bir modülü ayrı bir komut dosyası etiketine yazdık ve kodu bir yorum bloğu (/ * * /) içinde sakladık. Kaynak ilk yüklendiğinde, koddan hiçbiri yorumlanmadığından ayrıştırılamaz. Bir modülü yüklemek için, ilgili komut dosyası etiketi için DOM öğesini bulun, yorum bloğunu dışarı çıkartın ve eval() kodu ....Hala mobil JavaScript'teki performans için değerlendirmeyi kullanmaya değer mi?

Bir iPhone 2.2 aygıtında, bir blok yorumu içinde tutulan 200k JavaScript dosyası ekler. Sayfa yükleme sırasında 240ms, sayfa yükleme sırasında ayrıştırılan 200k JavaScript 2600 ms ekledi. Bu, sayfa yükü sırasında 200k gereksiz olan JavaScript'i ortadan kaldırarak açılış gecikmesindeki bir 10 kat azalmadan daha fazlasıdır!

http://googlecode.blogspot.co.uk/2009/09/gmail-for-mobile-html5-series-reducing.html https://developers.google.com/speed/docs/best-practices/mobile

gmail makale üçten fazla yaşındadır ve o zamandan beri mobil performansta büyük bir avantaj var oldu

, yani iOS takımından Nitro gibi şeyler ve JIT mobil geliyor. Performans kazançları hala değerlendirmeyi kullanmaktan mı geçiyor?

+6

Eğer gmail ölçeğinde bir uygulama yazıyorsanız evet, bu gibi püf noktaları çok etkili olabilir. Ancak uygulamanızın bu tür bir kod boyutu yoksa veya tembel yüklü modüller kullanmıyorsa, dikkatli olmanızı isterim: Bu gibi ipuçları her zaman evrensel olarak etkili değildir ve bazı durumlarda aslında tam tersi uygunsuz kullanım halinde performans üzerindeki etkisi. Bu tür bir şey yapacaksanız, tek mantıklı tavsiye, kendiniz için iyice karşılaştırmaktır. – Spudley

+1

da, uygulamanıza bağlı olarak, tüm kullanıcılarınızın OS, tarayıcı, donanımın en son sürümüne sahip olup olmayacağını düşünmelisiniz. – Leo

cevap

3

JavaScript motorları bu kadar verimli hale geldiğinden beri olduğu gibi aynı teknoloji sorunu değil. Daha fazla uygulama benzeri olmak açısından başka kaygılar var.

enter image description here

CSS dönüşümleri ve requestAnimationFrame hatta asm.js. ile GPU kullanan iplik boşaltmak için ajax istekleri için web işçileri kullanma gibi bir yaklaşım farklıdır artık hile vardır LocalStorage/sessionStorage ve Uygulama Önbelleği'ni kullanmak, içerik JSON/images veri URL'lerinden/videolarından daha fazla bir şey çağırmaktan kaçınmak ve şeyleri belleğe yüklemek/yüklemek için gerçekten çok fazla istemci tarafı önbelleğe alabileceğiniz satırlar boyunca başka bir yaklaşımdır. Bu önbelleklerden gerekli.

Başka bir deyişle farklı bir zaman ve sorunuz, web uygulamalarının performansında gerçekten bir fark yaratmak için doğru alanlara odaklanmamış ama ilginç değil.

+2

Bu, soruya cevap vermiyor. Üstelik, ilk grafik, satılan cihazların sayısı ile ilgilidir ve bunların performansıyla hiçbir ilgisi yoktur. – xpereta

+1

Sanırım endişe etmenin yanı sıra, diğer etmenlerin de sağduyuya karşı daha duyarlı olduğunu düşünüyorum. Mesele, teknolojinin patlamasını pazara göstermek ve daha yeni teknolojinin daha hızlı betimlemeyi nasıl gerçekleştirdiğini göstermekti. –

+1

@xpereta Bunu kaldırdım. Teşekkür ederim. –