Aktualizacja Dodano jsfiddle - patrz dno postujQuery różnica wydajności bez „każdego”
Obecnie mam funkcję ponowne włączenie wszystkich pól niepełnosprawnych na ekranie. Mimo, że działa dość szybko (< 1ms zgodnie z Firebug Profiler), jestem w trakcie sprzątania wszystkie JavaScript w moich ekranów i zorientowali ta szczególna funkcja wydawała się być nieco zbędny:
function enableDisabledFields() {
$('[disabled]').each(function(i) {
$(this).removeAttr('disabled');
});
}
byłem pod wrażenie, że te 3 linie można wymienić w następujący sposób, i spodziewam się, jeśli nie lepiej niż co najmniej równy wydajności.
function enableDisabledFields() {
$('[disabled]').removeAttr('disabled');
}
Podobno się mylę. Pierwsza gra o wiele lepiej i nie do końca rozumiem dlaczego. Nawet dodanie dodatkowych selektorów, takich jak: input, nie powoduje różnicy (a nawet ją pogarsza).
Czy ktoś może wyjaśnić moje zamieszanie? Dzięki.
Edycja Powinienem dodać, że używamy starej wersji jQuery - 1.3.1 Wierzę.
Edit2 Oto niektóre linki jsFiddle. Należy pamiętać, że mogę nie rozumieć profilera Firebuga (, które, jak mi się wydaje, wydaje się być zgodne z przypadkiem).
Opcja 1: http://jsfiddle.net/kcut7/
Opcja 2: http://jsfiddle.net/ZgZpU/
Czy masz szansę ustawić parę stron na http://jsfiddle.net/? –
kiedy mówisz "wykonuj o wiele lepiej", jakie są dane liczbowe dla obu? – Ben
oba mają to samo prawo? – kobe