jQuery modifier plusieurs attributs ou remplacer l'ensemble de l'html
Je me demandais si il était plus efficace/plus rapide pour modifier plusieurs attributs avec jQuery ou juste changer de remplacer tout le code html d'un seul coup. C'est le code j'utilise en ce moment.
//shows the table and changes the image to up
showTable = function(tableId){
$('#img' + tableId).attr("src", images["up"]).attr("alt", "Hide Table").attr("title", "Hide Table");
$('#' + tableId).fadeIn(250);
}
ou serait-ce plus rapide?
//shows the table and changes the image to up
showTable = function(tableId){
$('#img' + tableId).replaceWith('some html');
$('#' + tableId).fadeIn(250);
}
- Il suffit de tester, vous avez le code. De quelle manière a été plus rapide? Si vous ne pouvez pas dire une différence alors qu'il n'a pas d'importance. "... l'optimisation prématurée est la racine de tous les maux" - Donald Knuth.
- J'ai fini de l'application web et suis en train de faire du refactoring et ces. J'ai demandé parce que je suis nouveau à tout cela, donc je ne sais pas vraiment comment faire pour tester javascript efficacité. Et je ne sais pas tout, j'ai donc chercher la sagesse de ceux qui m'entourent. Je ne savais pas que je pouvais faire quelque chose comme yan.kun n'. Merci pour l'aide.
Vous devez vous connecter pour publier un commentaire.
Exemple tiré de jQuery Documentation.
Étant donné que vous êtes en prenant un quart de seconde à s'estomper dans le résultat et ce n'est pas une boucle, vous n'allez pas à l'avis de toute différence de performances entre les deux. Comme yan.kun points, vous pouvez rendre le code un peu plus concis en utilisant le multi-ensemble (carte) la version de
attr
, mais avec trois attributs non pas dans une boucle, il ne va pas faire un vitesse différence. (Si c'était le cas, j'aimerais éviter d'appelerattr
entièrement et l'utilisation de l'élément reflétée propriétés —src
,alt
, ettitre
sont tous reflétés.)Cela dit, il y a autres raisons de mettre à jour les éléments plutôt que de les remplacer. Par exemple, si vous avez des gestionnaires attachée à ces éléments, si vous mettez à jour les éléments', les attributs, les gestionnaires restent attachés; si vous remplacer les éléments, les gestionnaires ne sont pas attachés (parce qu'ils étaient attachés à l'ancien). Remplacement d'éléments aussi les causes de redistribution, qui peuvent être importantes (ou pas) en fonction de votre DOM structure.