Mise à jour Ajouté jsFiddle - voir en bas de postdifférence de performance jQuery sans « chaque »
J'ai actuellement une fonction qui réactive les tous les champs handicapés à l'écran. Bien qu'il fonctionne assez rapidement (< 1ms selon Firebug profileur), je suis en train de ranger tout le Javascript dans mes écrans et pensé que cette fonction particulière semblait être un peu redondant:
function enableDisabledFields() {
$('[disabled]').each(function(i) {
$(this).removeAttr('disabled');
});
}
J'étais sous l'impression que ces 3 lignes pourraient être remplacées comme suit, et je m'attendais sinon mieux que au moins performances égal.
function enableDisabledFields() {
$('[disabled]').removeAttr('disabled');
}
Apparemment, je me trompe. Le premier fonctionne beaucoup mieux et je ne comprends pas très bien pourquoi. Même l'ajout de sélecteurs supplémentaires tels que: input ne fait aucune différence (et en fait aggrave le problème).
Quelqu'un peut-il éclaircir ma confusion? Merci.
Modifier Je devrais ajouter que nous utilisons une ancienne version de jQuery - 1.3.1 je crois.
Éditer2 Voici quelques liens jsFiddle. S'il vous plaît gardez à l'esprit que je peux mal comprendre profiler Firebug (que je pense semble être le cas).
Option 1: http://jsfiddle.net/kcut7/
Option 2: http://jsfiddle.net/ZgZpU/
Avez-vous une chance de créer quelques pages sur http://jsfiddle.net/? –
quand vous dites "performer beaucoup mieux", quels chiffres obtenez-vous pour les deux? – Ben
les deux font la même chose? – kobe