по какой-то причине я делаю это каждый раз, потому что считаю это чистым. Я объявляю переменные сверху, чтобы использовать их ниже. Я делаю это, даже если я использую их только один раз.Является ли это плохой практикой Javascript, которую я здесь делаю?
Вот пример (с помощью jQuery рамки):
$("#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();
});
Я, как правило, сделать это в PHP
тоже. Правильно ли, если я считаю, что это не очень эффективная память?
Редактировать: Благодарим за ответы. Вы все дали хорошие ответы. Об этой оптимизации кода сейчас. Теперь это лучше?
$("#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();
});
повторять $ (это) .closest («tr») можно было бы избежать;) –
Я не хочу, чтобы комментарии понравились: Эй, вы делаете это неправильно, потому что вы сохраняете информацию в атрибутах «id» или что-то в этом роде, или вы должны хранить информацию только один раз в данных с помощью объекта. Я только хочу знать, насколько это плохо для памяти, доступной памяти/браузера. – Cybrix
@ Каспар, да, я знаю об этом. Я мог бы просто сохранить '$ (this) .closest (" tr ")' в переменной, поэтому jQuery не нужно запускать DOM каждый раз. : P – Cybrix