Cả hai đều thực thi code khi trang tải xong, nhưng có khác biệt quan trọng về thời điểm và cách thức.
Window.onload
Chạy khi cả cây DOM và tất cả tài nguyên (hình ảnh, stylesheet, script, object...) đã tải xong hoàn toàn.
onDocumentReady (thường dùng qua jQuery: $(document).ready())
Chạy ngay khi cây DOM đã sẵn sàng, không chờ hình ảnh hay tài nguyên khác tải xong. Giúp code thao tác DOM chạy sớm hơn.
Khác biệt về tương thích trình duyệt
window.onload: Không đồng nhất cross-browser.jQuery.document.ready()/DOMContentLoaded: Hoạt động nhất quán trên mọi trình duyệt hiện đại.
Khuyến nghị: Dùng DOMContentLoaded (vanilla JS) hoặc $(document).ready() (jQuery) để thao tác DOM sớm nhất có thể.