Tôi đã làm việc với jQuery và AJAX được vài tuần rồi và tôi đã thấy hai cách khác nhau để 'tiếp tục' tập lệnh sau khi lệnh gọi được thực hiện.
$.ajax[{url: '/'}].done[function[data] {}];
0 và $.ajax[{url: '/'}].done[function[data] {}];
1Từ bản tóm tắt từ tài liệu jQuery, chúng tôi nhận được
xong[]. Sự miêu tả. Thêm trình xử lý sẽ được gọi khi đối tượng Trì hoãn được giải quyết
sự thành công. [. tùy chọn ajax[]]. Một chức năng được gọi nếu yêu cầu thành công
Vì vậy, cả hai đều làm điều gì đó sau khi cuộc gọi AJAX đã được hoàn thành/giải quyết. Tôi có thể sử dụng cái này hay cái kia một cách ngẫu nhiên không?
Giải pháp tốt nhất
$.ajax[{url: '/'}].done[function[data] {}];
0 là tên truyền thống của gọi lại thành công trong jQuery, được định nghĩa là một tùy chọn trong lệnh gọi ajax. Tuy nhiên, kể từ khi triển khai $.ajax[{url: '/'}].done[function[data] {}];
1 và các cuộc gọi lại tinh vi hơn, thì $.ajax[{url: '/'}].done[function[data] {}];
2 là cách ưa thích để triển khai các cuộc gọi lại thành công, vì nó có thể được gọi trên bất kỳ $.ajax[{url: '/'}].done[function[data] {}];
3 nàoVí dụ, thành công
$.ajax[{
url: '/',
success: function[data] {}
}];
Ví dụ, xong
$.ajax[{url: '/'}].done[function[data] {}];
Điều thú vị về
$.ajax[{url: '/'}].done[function[data] {}];
2 là giá trị trả về của $.ajax[{url: '/'}].done[function[data] {}];
5 hiện là một lời hứa hoãn lại có thể được ràng buộc với bất kỳ nơi nào khác trong ứng dụng của bạn. Vì vậy, giả sử bạn muốn thực hiện cuộc gọi ajax này từ một vài nơi khác nhau. Thay vì chuyển hàm thành công của bạn dưới dạng một tùy chọn cho hàm thực hiện cuộc gọi ajax này, bạn chỉ cần để hàm trả về chính $.ajax[{url: '/'}].done[function[data] {}];
5 và liên kết các cuộc gọi lại của bạn với $.ajax[{url: '/'}].done[function[data] {}];
2, $.ajax[{url: '/'}].done[function[data] {}];
8, $.ajax[{url: '/'}].done[function[data] {}];
9 hoặc bất kỳ thứ gì. Lưu ý rằng $.ajax[{url: '/'}].done[function[data] {}];
20 là một cuộc gọi lại sẽ chạy cho dù yêu cầu thành công hay thất bại. $.ajax[{url: '/'}].done[function[data] {}];
2 sẽ chỉ được kích hoạt khi thành côngVí dụ
$.ajax[{url: '/'}].done[function[data] {}];
2Một lợi ích quan trọng của điều này về khả năng bảo trì là bạn đã bao bọc cơ chế ajax của mình trong một chức năng dành riêng cho ứng dụng. Nếu bạn quyết định rằng bạn cần lệnh gọi
$.ajax[{url: '/'}].done[function[data] {}];
5 của mình hoạt động theo cách khác trong tương lai hoặc bạn sử dụng một phương thức ajax khác hoặc bạn rời khỏi jQuery, thì bạn chỉ phải thay đổi định nghĩa $.ajax[{url: '/'}].done[function[data] {}];
23 [đảm bảo trả lại một lời hứa hoặc ít nhất là một $.ajax[{url: '/'}].done[function[data] {}];
2 . Tất cả các tài liệu tham khảo khác trong ứng dụng có thể giữ nguyênCó nhiều thứ khác [thú vị hơn nhiều] bạn có thể làm với
$.ajax[{url: '/'}].done[function[data] {}];
25, một trong số đó là sử dụng $.ajax[{url: '/'}].done[function[data] {}];
26 để kích hoạt lỗi đối với một lỗi được báo cáo bởi máy chủ, ngay cả khi bản thân yêu cầu $.ajax[{url: '/'}].done[function[data] {}];
5 đã thành công. Ví dụ$.ajax[{url: '/'}].done[function[data] {}];
1Đọc thêm về
$.ajax[{url: '/'}].done[function[data] {}];
25 tại đây. http. //api. jquery. com/category/deferred-object/GHI CHÚ. Kể từ jQuery 1. 8,
$.ajax[{url: '/'}].done[function[data] {}];
26 không được chấp nhận để sử dụng $.ajax[{url: '/'}].done[function[data] {}];
9 theo cùng một cáchGiải pháp liên quan
Javascript – Mẹo và Thủ thuật jQuery
Tạo một phần tử HTML và giữ một tham chiếu
$.ajax[{url: '/'}].done[function[data] {}];
5
Kiểm tra nếu một phần tử tồn tại
$.ajax[{url: '/'}].done[function[data] {}];
6
Viết bộ chọn của riêng bạn
$.ajax[{url: '/'}].done[function[data] {}];
7Xử lý lỗi JQuery Ajax, hiển thị thông báo ngoại lệ tùy chỉnh
Đảm bảo rằng bạn đang đặt
$.ajax[{url: '/'}].done[function[data] {}];
11 thành giá trị khác 200. Viết tin nhắn ngoại lệ của bạn bằng cách sử dụng $.ajax[{url: '/'}].done[function[data] {}];
12, sau đó sử dụng