Tôi đang cố gắng tối ưu hóa bảng sắp xếp mà tôi đã viết. Các nút cổ chai là trong thao tác dom. Tôi hiện đang tạo các hàng bảng mới và chèn chúng mỗi khi tôi sắp xếp bảng. Tôi tự hỏi liệu tôi có thể tăng tốc mọi thứ bằng cách đơn giản sắp xếp lại các hàng, không tái tạo các nút. Để tạo ra sự khác biệt đáng kể, việc sắp xếp lại nút dom sẽ phải dễ dàng hơn nhiều so với việc tạo nút. Đây có phải là trường hợp không? cảm ơn, -Morganjavascript/dom - đắt tiền như thế nào khi tạo và sắp xếp lại các nút dom?
Trả lời
Bạn có thể tìm thấy trang này có ích cho một số tiêu chuẩn:
Tôi không biết liệu tạo hoặc thao tác nhanh hơn, nhưng tôi biết rằng nó sẽ được nhanh hơn nếu bạn thao tác toàn bộ bảng khi nó không nằm trên trang và sau đó đặt nó trên tất cả cùng một lúc. Dọc theo các dòng đó, có thể sẽ sắp xếp lại các hàng hiện tại chậm hơn, trừ khi toàn bộ bảng được loại bỏ khỏi DOM trước.
This page gợi ý rằng sẽ nhanh nhất để sao chép bảng hiện tại, thao tác nó như bạn muốn, sau đó thay thế bảng trên DOM.
oh. hấp dẫn. Cảm ơn. – morgancodes
Tôi đang vẽ bảng này nhanh gấp hai lần, sử dụng innerHTML, tạo toàn bộ nội dung dưới dạng chuỗi, thay vì chèn từng nút một.
wow, trên thực tế, kỹ thuật đó làm cho nó tồi tệ hơn nhiều trong IE6. – morgancodes
Thay vì chuỗi = string + newstring, hãy sử dụng mảng: var a = []; while (loop) {a.push (newstring)} result = a.join (""); // Chuỗi nối trong IE là khủng khiếp chậm. Tôi đã làm một bài kiểm tra khi Opera hoàn thành trong khoảng 4 giây, và IE vẫn chưa kết thúc sau 20 phút. – some
Vâng, tôi cũng bắt gặp điều đó, nhưng với những gì tôi đang làm, có vẻ như vẫn còn nhanh hơn để thêm các nút dom hơn là sử dụng innerHTML trong IE6. – morgancodes
nếu bạn có thể, tốt hơn là thực hiện thao tác dom không phải là thao tác dom thực tế, nhưng dưới dạng phương thức nào đó trong tập lệnh của bạn và sau đó thao tác với dấu cách. Vì vậy, thay vì thực hiện những gì được gọi là repaint trên mỗi nút, bạn gộp lại những gì sẽ được repaint của bạn trên mỗi nút duy nhất vào phương pháp riêng của nó, và sau đó đính kèm các nút vào một phụ huynh mà sau đó sẽ được gắn vào dom thực tế, kết quả chỉ trong hai lần sơn lại thay vì hàng trăm. Tôi nói hai b/c bạn cần phải dọn dẹp những gì trong dom đã có trước khi cập nhật với dữ liệu mới của bạn.
tôi đang tìm kiếm một câu trả lời này và quyết định thành lập một chuẩn mực nhanh chóng http://jsfiddle.net/wheresrhys/2g6Dn/6/
Nó sử dụng jQuery, vì vậy không phải là một chuẩn mực tinh khiết, và nó có thể là sai lệch theo những cách khác quá. Nhưng kết quả mà nó đưa ra là các nút DOM di chuyển nhanh gấp hai lần khi tạo và phá hủy các nút dom mỗi lần
- 1. Cách dễ nhất để sắp xếp các nút DOM?
- 2. Mysql: Sắp xếp theo như thế nào?
- 3. Sắp xếp lại/phân loại các DIV mà không cần chèn lại vào DOM
- 4. Giá GUID và so sánh đắt tiền như thế nào so với so sánh chuỗi
- 5. Làm thế nào đắt tiền là đúc một đối tượng?
- 6. Sắp xếp TreeView Tự động khi thêm các nút
- 7. Tạo các tab có thể sắp xếp lại trong Swing
- 8. mảng Sắp xếp lại
- 9. Sắp xếp lại UITableView và ẩn sắp xếp lại kiểm soát
- 10. Đang truyền một hoạt động đắt tiền?
- 11. Cách sắp xếp lại các phiên TMUX?
- 12. jquery sắp xếp lại các div
- 13. Cách sắp xếp của Javascript() hoạt động như thế nào?
- 14. Sắp xếp các nội dung chương như 14.1.2.3 và 14.10.1.2.3.4
- 15. Python: Làm thế nào đắt tiền để tạo ra một danh sách nhỏ nhiều lần?
- 16. Thuật toán sắp xếp MapReduce hoạt động như thế nào?
- 17. sắp xếp lại các phím mảng php
- 18. Làm thế nào để dễ dàng sắp xếp lại TabControl?
- 19. GCC - Cách sắp xếp lại ngăn xếp?
- 20. MYSQL: làm thế nào để "sắp xếp lại" một bảng
- 21. Cách sắp xếp các phần tử DOM trong khi chọn trong jQuery?
- 22. Làm cách nào để sắp xếp lại các phương thức được tạo tự động trong Netbeans?
- 23. Tôi có thể sắp xếp ObservableCollection như thế nào?
- 24. R: sắp xếp lại các đối tượng thành tập tin văn bản và ngược lại
- 25. Sắp xếp theo phát lại khi lấy nhạc từ SoundCloud
- 26. Tải lại tùy chỉnh UITableViewCell sau khi sắp xếp lại các ô
- 27. cột Sắp xếp lại DataTable
- 28. Làm cách nào để sắp xếp lại các cột Mysql?
- 29. Android - kéo và thả - danh sách sắp xếp lại
- 30. Ajax, nút quay lại và cập nhật DOM
Có bao nhiêu hàng trong bảng mà bạn sắp xếp? –
hàng trăm, không phải hàng ngàn – morgancodes
Tôi sẽ không đăng câu trả lời này vì câu trả lời sẽ không được trả lời vì bạn không trả lời câu hỏi của mình, nhưng bạn có thấy plugin tablesort cho jQuery không? - http://tablesorter.com/docs/example-pager.html –