@Marooned:
Wiem jak działają live()
i delegate()
. Pytałem, czy jakieś źródła faktycznie tak mocno używały użycie live()
bo zaciekawiło mnie to gdy porównałeś tę funkcję do (rzeczywiście fatalnego) ereg
z PHP.
Tak w ogóle to w pewnych przypadkach korzystniejsze wydajnościowo może być użycie opcji A). Konkretnie: gdy zdarzenia na stronie zachodzą często, ale treść jest resetowana rzadko. Wtedy korzystniej jest odpalać silnik selektorów (=skanować DOM) podczas podpinania zdarzeń po aktualizacji treści, a nie po każdorazowym zajściu danego zdarzenia. Zależy to jednak od paru czynników. Podpięcie zbyt wielu zdarzeń do zbyt wielu elementów poprzez zwykłe wywołania bind()
może zmulić przeglądarkę. Z drugiej strony, używanie delegate()
lub live()
przy zdarzeniach typu mousemove
też może mulić.
A czy live()
ma nad delegate()
jakąś przewagę? Chyba nie, może jedynie łatwość nauki (bo przy delegate()
wypada już kumać bąbelkowanie zdarzeń; live()
to lepiej ukrywa i udaje, że wszystko dzieje się magicznie). delegate()
ma natomiast plus wydajnościowy, o którym wspomniałeś i na pewno warto go używać.