SORU
4 ŞUBAT 2009, ÇARŞAMBA


Zaman akışı-DOM bir ortamda olur mu?

Ne tür faaliyetler DOM ile web sayfasının görüntülenmesi tetikleyecek?

Farklı bakış açıları var gibi görünüyor. * *0, göre olur

  • Sen ya da bir DOM Ekle / Kaldır düğüm.
  • Dinamik bir stil uyguladığınızda, eleman gibi.stil.genişlik="10px").
  • Erişen offsetWidth, clientHeight, ya da herhangi bir bilgisayarlı CSS değeri olarak hesaplanan bir ölçüm aldığınızda (getComputedStyle) ()-DOM uyumlu tarayıcılar veya IE currentStyle).

Ancak, http://dev.opera.com/articles/view/efficient-javascript/?page=3, ölçüme göre tetikler zaten yeniden akıtma yok sadece yeniden akıtma eylemi sıraya.

Başka fikirleri olan var mı?

CEVAP
14 AĞUSTOS 2009, Cuma


Her iki madde de doğru. Güvenle ne zaman makul DOM elemanlarının boyutları gerektiren bir şey yeniden akış tetikleyicisi olacaktır hesaplanacak varsayabiliriz.

Ayrıca, anladığım kadarıyla, her iki madde de aynı şeyi söylüyor.

İlk makalede, ne zaman yeniden akışı olur " der

Sen ne zamanhesaplanan bir ölçü almakerişen gibioffsetWidth,clientHeightya da herhangi bir bilgisayarlı CSS değeri ()() getComputedStyle-DOM uyumlu tarayıcılar veya IE currentStyle), DOM süredir değişiklikler yapılması sıraya.

İkinci madde devletler:

Daha önce de belirtildiği gibi, tarayıcı için birkaç değişiklik önbellek ve bu değişiklikler yapıldı her zaman sadece bir kez görüntülenmesi olabilir. Ancak, unutmayınelemanın alarak Ölçümler yeniden akıtma için zorlarÖlçümler doğru olacak , o kadar. Değişiklikleri olabilir veya gözle yeniden boyandı olmayabilir, ama akıtma kendisi hala perde arkasında olması gerek.

Bu etki ölçümleri gibi kullanarak özelliklerini alındığında oluşturuluroffsetWidthveya yöntemleri kullanarakgetComputedStyle. Eğer sayılar kullanılırsa bile, tarayıcı hala değişiklikleri önbelleği ise sadece bunlardan birini kullanarak gizli akışı tetiklemek için yeterli olacaktır. Eğer bu Ölçümler sürekli olarak alınırsa, sadece bir kez onları almak ve daha sonra kullanılabilir olan sonuç, depolama düşünmelisiniz.

Bunu daha önce söylediler aynı şeyi algılıyorum. Opera önbellek değerleri için elinden geleni ve sizin için yeniden akış önlemek olacaktır, ama bunu yapmak için onun yeteneği güvenmemelisiniz.

Tüm niyet ve amaçlar sadece etkileşimleri üç tür yeniden akış neden olabilir bunu söylediklerinde ikisi de söylediklerine inanmak için.

Şerefe.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GoogleTechTalks

    GoogleTechTa

    15 AĞUSTOS 2007
  • Kevin Bruckert

    Kevin Brucke

    30 Aralık 2006
  • ::..ηєѕѕ мιχ..::

    ::..ηєѕѕ

    15 Aralık 2006