vì một số lý do tôi làm điều đó mọi lúc bởi vì tôi thấy nó sạch sẽ. Tôi khai báo các biến trên đầu để sử dụng chúng bên dưới. Tôi làm điều đó ngay cả khi tôi chỉ sử dụng chúng một lần.Đó có phải là một thực tiễn Javascript tồi mà tôi đang làm ở đây không?
Dưới đây là một ví dụ (sử dụng jQuery khuôn khổ):
$("#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();
});
Tôi có xu hướng làm điều đó trong PHP
quá. Tôi có đúng không nếu tôi tin rằng nó không phải là rất bộ nhớ hiệu quả để làm điều đó?
Chỉnh sửa: Cảm ơn tất cả các câu trả lời. Bạn có tất cả các câu trả lời tốt. Giới thiệu về tối ưu hóa mã đó ngay bây giờ. Bây giờ có tốt hơn không?
$("#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();
});
lặp lại $ (this) .closest ("tr") có thể tránh được) –
Tôi không muốn nhận xét như: Hey bạn đang làm điều đó sai bởi vì bạn lưu trữ thông tin trong các thuộc tính "id" hoặc một cái gì đó hoặc bạn nên lưu trữ thông tin chỉ một lần trong dữ liệu bằng cách sử dụng một đối tượng. Tôi chỉ muốn biết bộ nhớ cho phép của bộ nhớ/trình duyệt làm như thế nào. – Cybrix
@Caspar, yep Tôi biết điều đó. Tôi có thể lưu trữ '$ (this) .closest (" tr ")' trong một biến để jQuery không phải chạy DOM mỗi lần. : P – Cybrix