Như một ví dụ:jQuery.ready() xử lý cuộc gọi đến chính nó như thế nào?
$(function(){
//do stuff
$(function(){
//do other stuff
});
});
Tất nhiên viết ra trong mã này dường như không có ý nghĩa. Nhưng một plugin hoạt động với các phần tử HTML có thể sử dụng .ready() trong khi chính nó được thực thi trên một phần tử trong tập lệnh chính của .ready(). JQuery xử lý chính xác điều này như thế nào? Nó hoạt động rõ ràng, nhưng nó có làm gì đặc biệt không?
có "ngay lập tức" như trong _synchronously_ (trước khi '.ready()' lợi nhuận)? – nnnnnn
Có, nó không đồng bộ. Bạn có thể kiểm tra việc thực hiện điều này trên trang đã tải: jQuery (tài liệu) .ready (function() {for (i = 0; i <1000000; i ++) {;}; console.log ('2');}); console.log ('1'); –
Tôi nhận được điều này: 'global .ready() START, 0ms; toàn cầu .ready() END, 8ms; plugin .ready()() START, 11ms; plugin .ready() END, 12ms'. Kết quả là hằng số cho dù tôi gọi các plugin lúc bắt đầu hoặc ở phần cuối của toàn cầu. Vì vậy, các cuộc gọi .ready bên trong các plugin có vẻ để xếp hàng chính nó sau khi đã thực hiện. Đã từ đó nó được gọi là – Armatus