Tôi có mã C# chạy truy vấn trong SQL và trả về khoảng 2000 hàng. Sau đó, kiểm soát Treeview được tạo và thêm trang chính của tôi. Điều này được thực hiện gần như ngay lập tức, đó là tốt.Tối ưu hóa mã Javascript cho Tìm()
var orgId = $('select[name="ctl00$PageContent$FunctionsDropDownList"] option:selected').val();
if (!orgId) {
return false;
}
//calls serverside get data
//This line happens quickly
$('#ctl00_PageContent_HiddenRulesDialogTriggerButton').click();
//This part takes about 10-15 minutes to finally get to the true
var i = setInterval(function() {
if ($('#ctl00_PageContent_treeview').find('table').length > 0)
{
clearInterval(i);
StartDialog();
return false;
}
});
Vì vậy, phải mất khoảng 10-15 phút để đạt số clearInterval(i)
. Khi đó, i = 978
. Không chắc tại sao phải mất quá lâu. Có thể find()
rất chậm. Có ai khuyên bạn nên thay thế?
EDIT
Bỏ phiếu không phải là cách chính xác để thực hiện việc này. Có lẽ khi bạn gọi máy chủ để lấy dữ liệu, bạn đang sử dụng '$ .ajax()'. Gọi lại của bạn sẽ được gọi khi dữ liệu đến. Có thể gọi lại này đã có trong mã của bạn và đang được sử dụng để điền vào kiểm soát Treeview. Bạn chỉ cần thêm mã bổ sung sau khi TreeView được điền để hiển thị hộp thoại của bạn. – Brandon
Làm cách nào để tạo treeview? Bạn không có thể đính kèm 'StartDialog' này làm cuộc gọi lại khi 'hành động tạo ảnh treeview' được hoàn thành? – jolmos
Tôi đã không viết mã Javascript, nhưng tôi đang cố gắng sửa chữa nó. Các treeview được tạo ra trong mã phía sau. Sau đó StartDialog() tạo popup và thêm html treeview. Nhưng StartDialog() không phải là vấn đề. Các nút cổ chai đang xảy ra trong find() –