Anonim

Theo mặc định, yêu cầu $ .ajax trong jQuery được đặt thành không đồng bộ. Tên biến là async và giá trị được đặt thành true. Điều này cũng cho tôi một chút bối rối khi lần đầu tiên tìm hiểu về nó, vì vậy hãy xem qua nó.

Không đồng bộ so với đồng bộ

Cài đặt mặc định trong jQuery. Theo kinh nghiệm của tôi, không đồng bộ nên hầu như luôn luôn thực hiện các mẹo. Ngoài ra còn có 2 tình huống cụ thể thậm chí không cho phép thực hiện cuộc gọi đồng bộ.

  • Yêu cầu tên miền chéo. Nếu tôi đang thực hiện một yêu cầu ajax từ techjunkie.com đến một tệp trên whereever.com (một tên miền hoàn toàn khác), đó sẽ là một yêu cầu tên miền chéo.
  • jsonp - Nếu bạn đang tìm cách truy xuất dữ liệu tên miền chéo, JSONP là thứ bạn đang tìm kiếm.

Khi nào nên sử dụng đồng bộ

Trước tiên bạn nên lưu ý rằng việc đặt async thành false sẽ đóng băng trình duyệt của bạn. Nó khóa nó, hoàn toàn. Không chỉ trang của bạn, mà mọi trang mà người dùng có thể đã mở. Ví dụ: nếu máy chủ của bạn chậm yêu cầu giữa chừng, bạn đã vô hiệu hóa trình duyệt của họ một cách hiệu quả cho đến khi máy chủ của bạn có cơ hội bắt kịp và chuyển dữ liệu cần thiết.

Thay vì mạo hiểm với một cuộc gọi đồng bộ, chỉ cần xác định chức năng gọi lại thành công hoặc lỗi. Bạn có thể đến cùng một điểm cuối mà không làm hỏng trải nghiệm duyệt web của người dùng. Nói tóm lại, đừng sử dụng cuộc gọi đồng bộ. Nó xấu cho ứng dụng của bạn và UX.

Sự khác biệt giữa đồng bộ và không đồng bộ trong ajax