2016-11-15 105 views
5

Özetle: Google Chrome, Firefox, Safari vb. Yazılımlarda kesinlikle iyi çalışan bir KO kodlu bir sayfam var. Ancak, Internet Explorer'da performans gitti. IE10, IE11'i denedim. Yaklaşık 150 satır oluşturmak için 10 ila 25 saniye sürer. enter image description hereKnockoutjs, Internet Explorer'da oldukça yavaş çalışır

Detaylar: There sayfa onların görevleri gösterilmektedir kullanıcılarına özel bir çalışma kuyruğu temsil eder. Gereksinim bu sayfada herhangi bir sayfalama kullanmamaktır. Tablonun her sırasının gösterilmesi için en az bir düzine varyantı vardır (bağlantılar, düğmeler, girişler, css şekillendirme, kullanıcı olaylarını işleme, özel js eklentileri, vb.). Ürün üzerindeki ortalama satır sayısı 100-200 + 'dır. Kullanıcı farklı filtreler ve sıralamalar uygulayabilir.

  • şablonu kullanarak sayısını azalttı, (mümkünse pureComputed, olarak değiştirildi) bilgisayarlı özelliklerin sayısını azalttı:

    şeyler zaten denedim ve ve bağlayıcıları (profilleyiciye göre en çok zaman harcayan işlerdir) - 'u kullanıyorum

  • nakavt-fast-foreach özel bağlama (https://github.com/brianmhunt/knockout-fast-foreach)

  • kullanmaya çalıştı mümkün, hafıza

  • profilli sızıntılarını ortadan kaldırmak için IE ve Chrome araçlarıyla kod profilli ko.bindingReport.js (https://gist.github.com/kamranayub/65399fa247a6c182bc65)

ile kod

Yukarıda belirtilen yaklaşımlar, Chrome'da neredeyse iki kat daha hızlı kod ayarladı (ko.bindingReport.js). Ama IE hala çok yavaş - render için yaklaşık 10 saniye.

Krom: Chrome status

Internet Explorer:

IE status

Millet, herhangi bir fikir?

+0

kullandığınız KO sürümü https://github.com/mbest/knockout-table? –

+0

@f_martinez ko-3.4.0 – godspeed

+0

Yayınınız iyi yazılmış ve kolay anlaşılır. Ama eğer bize yardım edebilecek olmamızın şansını en üst düzeye çıkarmak istiyorsanız, bir repro'ya ihtiyacımız olacak. Kök nedeni olana kadar bazı bifürkasyon kullanmaya çalışın ve test verileriyle bazı örnek kodlar gönderin. – Jeroen

cevap

0

Hesaplanan gözlenebilirlerin miktarını azalttınız, ancak aynı zamanda gözlenebilirlerin miktarını da düşürdünüz mü? Düzenlenebilir alanların loflarını göremiyorum. Sayfada düzenlenmeyenler muhtemelen gözlenebilir olmak zorunda değil mi? Bu benim performansımı epeyce arttırdı.

1

"Tablo bağlantısı, Knockout kullanarak veri tablolarını görüntülemek için hızlı bir yöntem sağlar. Tablo, iç içe geçmiş foreach bağlaçlarından yaklaşık on kat daha hızlıdır."

Bu iddialar 10 kat daha hızlıdır.

+0

Çok teşekkürler @ idlehands23! Sorun şu an için, kullanıcı sayfayı kaydırdığında dinamik olarak satır bölümlerini oluşturmaya karar verdik. Sorunu çözdü. Bir dahaki sefere nakavt masaya gideceğim! – godspeed