Anonim

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

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

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

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

เมื่อใดจึงจะใช้ซิงโครนัส

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

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

ความแตกต่างระหว่างซิงโครนัสและอะซิงโครนัสในอาแจ็กซ์