5

Anladığım kadarıyla History.js, HTML5 History/State APIs için bir çoklu dolgudur. Bu nedenle, modern tarayıcılarda, URL değişikliklerini dinlemek için popstate kullanmanız yeterlidir. Yani, en son Chrome'da neden her 250 ms'de ateşleme zamanlayıcısı görebilirim? Bu çok savurgan görünüyor ve birkaç saniyede bir çöp toplayıcı tetikler.Neden history.js setInterval (.., 250) kullanıyor?

Kontrol dışarı bu resmi History.js demo.

History.js demo page firing timer every 250ms

+0

Neden yerel JS'yi kullanmıyorsunuz? – RomanGorbatko

+1

@RomanGorbatko [IE9 ve eski android tarayıcıları] desteklememiz gerekiyor (http://caniuse.com/#feat=history). Bu nedenle, bir polyfill kullanımı gereklidir (değil mi?). –

+0

krom – NavaRajan

cevap

0

Ben History.js kodunu bilmiyorum, ama bunun üzerinden okuma, ben @apsillers doğru olduğunu düşünüyoruz.

Kuyruk öğeleri arasında 250ms'lik bir aralık için yapılandırılır. Sıradaki sıralı işlevlerden bazıları, Tarih durumunu yakalamayı gerektirir. Bu öğeler, çalkalamayı meşgul olarak çağırarak duraklatmaya zorlar. Bu da beni görünüyor HTML5 tarayıcılarında olur Neden olarak

History.JS sadece HTML5 ise bir geçiş düğmesi ve ardından hiçbir şey olmadığıdır. onların github günü onların amaçları ve temel ilkeleri biri olarak devletler:

biraz farklı farklı davranış ve bazen hatalar neden tüm HTML5 tarayıcılar için çapraz uyumlu bir deneyim (hepsi HTML5 Geçmişi API uygulamak sağlayın - History.js deneyimi sağlarken bu beklendiği gibi düzeltmeler /)

History.js hala kuyruk içerir hatta bazı işler yapıyorsa HTML5 tarayıcıları boyunca harika/aynı, onlar meşgul zaman aşımı kullanmayı tercih ediyorum tahmin ediyorum.