Tôi có vòng lặp for lặp lại nhiều hơn 10.000 lần trong mã javascript. Vòng lặp for tạo và thêm các thẻ < div> vào một hộp trong DOM trang hiện tại.Javascript: Làm thế nào để đặt một sự chậm trễ đơn giản ở giữa thực thi mã javascript?
for(i = 0; i < data.length; i++)
{
tmpContainer += '<div> '+data[i]+' </div>';
if(i % 50 == 0) { /* some delay function */ }
}
containerObj.innerHTML = tmpContainer;
tôi muốn đặt một sự chậm trễ sau mỗi 50 < div> thẻ vì vậy những gì sẽ được mã tại nơi
/* some delay function */
vì dùng nó quá nhiều thời gian để tải tất cả 10.000 < div> thẻ. tôi muốn cập nhật hộp theo khối 50 < div> thẻ.
cảm ơn trước.
Điều đó sẽ hiệu quả, nhưng hai nhận xét: 1. Việc tạo ** hàm ** mới không cần thiết mỗi khi bạn đạt đến 50 div. Đó là 199 chức năng không cần thiết. Có lẽ không sao, nhưng vẫn còn, tránh được. 2. Sẽ hiệu quả hơn khi xây dựng HTML trong một chuỗi các chuỗi và sau đó sử dụng 'a.join (" ")' để tạo một chuỗi lớn khi bạn hoàn thành, hơn là sử dụng chuỗi nối để xây dựng HTML. –
@ T.J. Bạn có quyền về cả hai điểm đó, nhưng tôi không bận tâm vì sự đơn giản: 1. Tạo chức năng hiếm khi là vấn đề về hiệu năng, đặc biệt là khi nút cổ chai của bạn là DOM, 2. nối chuỗi chỉ là một vấn đề trên IE, và thường nhanh hơn trong các trình duyệt khác, nhưng ngay cả đối với IE, vì tôi đang đặt lại 'tmpContainer' thành một chuỗi rỗng, các chuỗi không bao giờ trở nên lớn;) –
giải pháp thực sự tốt đẹp. –