Anonim

Secara lalai, permintaan $ .ajax di jQuery ditetapkan kepada asynchronous. Nama pembolehubah adalah async dan nilai ditetapkan kepada benar. Ini memberi saya sedikit kekeliruan juga apabila belajar terlebih dahulu, jadi mari kita meneruskannya.

Asynchronous vs. Synchronous

Tetapan default dalam jQuery. Dalam pengalaman saya, Asynchronous hampir selalu melakukan silap mata. Terdapat juga 2 situasi yang tidak membenarkan panggilan segerak.

  • Permintaan domain silang. Jika saya melakukan permintaan ajax dari techjunkie.com ke fail di whereever.com (domain yang sama sekali berbeza), itu akan menjadi permintaan domain silang.
  • jsonp - Jika anda mencari untuk mendapatkan data cross domain JSON, JSONP adalah apa yang anda cari.

Bila hendak menggunakan Segerak

Anda harus terlebih dahulu sedar bahawa penetapan async ke palsu membeku penyemak imbas anda. Ia menguncinya, sepenuhnya. Bukan hanya halaman anda, tetapi setiap halaman yang pengguna mungkin buka. Contohnya, jika pelayan anda melambatkan permintaan tengah, anda telah melumpuhkan penyemak imbasnya secara berkesan sehingga pelayan anda mempunyai peluang untuk mengejar dan menyampaikan data yang diperlukan.

Daripada mengambil risiko dengan panggilan segerak, hanya nyatakan fungsi panggil balik pada kejayaan atau kesilapan. Anda dapat ke titik akhir yang sama tanpa merosakkan pengalaman penyemakan pengguna. Ringkasnya, jangan gunakan panggilan segerak. Tidak baik untuk aplikasi dan UX anda.

Perbezaan antara segerak dan tak segerak dalam ajax