ความแตกต่างระหว่าง Synchronous และ Asynchronous ใน Ajax

ตามค่าเริ่มต้นคำขอ $ .ajax ใน jQuery ถูกตั้งค่าเป็นแบบอะซิงโครนัส ชื่อตัวแปรคือ async และค่าถูกตั้งค่าเป็น true เรื่องนี้ทำให้ฉันรู้สึกสับสนเล็กน้อยเมื่อเรียนรู้เรื่องนี้เป็นครั้งแรกดังนั้นเรามาดูกันดีกว่า

ไม่ตรงกันกับซิงโครนัส

การตั้งค่าเริ่มต้นใน jQuery จากประสบการณ์ของฉัน Asynchronous ควรทำเคล็ดลับเกือบตลอดเวลา นอกจากนี้ยังมี 2 สถานการณ์โดยเฉพาะอย่างยิ่งที่ไม่อนุญาตให้มีการเรียกซิงโครไนซ์

  • คำขอข้ามโดเมน ถ้าฉันทำคำขอ ajax จาก techjunkie.com ไปยังไฟล์ใน whereever.com (โดเมนที่ต่างกันทั้งหมด) ซึ่งจะเป็นคำขอข้ามโดเมน
  • jsonp - หากคุณต้องการเรียกข้อมูลข้ามโดเมนของ JSON JSONP คือสิ่งที่คุณต้องการ

เมื่อใช้ Synchronous

ก่อนอื่นคุณควรทราบว่าการตั้งค่า async เป็น false จะทำให้เบราว์เซอร์ของคุณหยุดทำงาน มันล็อคมันสมบูรณ์ ไม่ใช่เฉพาะหน้าเว็บของคุณ แต่เป็นทุกหน้าที่ผู้ใช้อาจเปิด ตัวอย่างเช่นหากเซิร์ฟเวอร์ของคุณช้าลงคำขอกลางคุณปิดใช้งานเบราว์เซอร์ของตนอย่างถูกต้องจนกว่าเซิร์ฟเวอร์ของคุณจะมีโอกาสติดตามและส่งต่อข้อมูลที่จำเป็นได้

แทนที่จะเสี่ยงกับการเรียกซิงโครนัสเพียงแค่ระบุฟังก์ชันการโทรกลับในความสำเร็จหรือข้อผิดพลาด คุณเข้าสู่จุดสิ้นสุดเดียวกันโดยไม่ทำให้ประสบการณ์การท่องเว็บของผู้ใช้เสียหาย ในระยะสั้นอย่าใช้สายซิงโครไนซ์ ไม่ดีสำหรับแอ็พพลิเคชันและ UX ของคุณ

ดูเพิ่มเติมที่