por alguna razón hago eso cada vez porque lo encuentro limpio. Declaro variables en la parte superior para usarlas a continuación. Lo hago incluso si los uso solo una vez.¿Es una mala práctica de Javascript lo que estoy haciendo aquí?
Aquí es un ejemplo (usando jQuery marco):
$("#tbListing").delegate("a.btnEdit", "click", function(e) {
var storeId = $(this).closest("tr").attr("id").replace("store-", ""),
storeName = $(this).closest("tr").find("td:eq(1)").html(),
$currentRow = $(this).closest("tr");
$currentRow.addClass("highlight");
$("#dialogStore")
.data("mode", "edit")
.data("storeId", storeId)
.data("storeName", storeName)
.dialog("open");
e.preventDefault();
});
que tienden a hacer que en PHP
también. ¿Tengo razón si creo que no es muy eficiente en la memoria para hacer eso?
Edit: Gracias por todas las respuestas. Todos ustedes han dado buenas respuestas. Acerca de esa optimización de código ahora. ¿Eso es mejor ahora?
$("#tbListing").delegate("a.btnEdit", "click", function(e) {
var $currentRow = $(this).closest("tr"),
storeId = this.rel, /*storing the storeId in the edit button's rel attribute now*/
storeName = $currentRow.find("td:eq(1)").html();
$currentRow.addClass("highlight");
$("#dialogStore")
.data("info", {
"mode" : "edit",
"storeId" : storeId,
"storeName" : storeName
}) /*can anyone confirm that overusing the data isn't very efficient*/
.dialog("open");
e.preventDefault();
});
repitiendo $ (this) .closest ("tr") podría evitarse;) –
No quiero comentarios como: Oye, lo estás haciendo mal porque almacenas información en los atributos "id" o algo así o solo debes almacenar información una vez en los datos usando un objeto. Solo quiero saber qué tan malo es para la memoria/memoria permitida del navegador hacerlo. – Cybrix
@Caspar, sí, soy consciente de eso. Podría simplemente almacenar el '$ (this) .closest (" tr ")' en una variable para que jQuery no tenga que ejecutar el DOM cada vez. : P – Cybrix