ตามค่าเริ่มต้นคำขอ $ .ajax ใน jQuery ถูกตั้งค่าเป็นแบบอะซิงโครนัส ชื่อตัวแปรคือ async และค่าถูกตั้งค่าเป็น true เรื่องนี้ทำให้ฉันรู้สึกสับสนเล็กน้อยเมื่อเรียนรู้เรื่องนี้เป็นครั้งแรกดังนั้นเรามาดูกันดีกว่า
ไม่ตรงกันกับซิงโครนัส
การตั้งค่าเริ่มต้นใน jQuery จากประสบการณ์ของฉัน Asynchronous ควรทำเคล็ดลับเกือบตลอดเวลา นอกจากนี้ยังมี 2 สถานการณ์โดยเฉพาะอย่างยิ่งที่ไม่อนุญาตให้มีการเรียกซิงโครไนซ์
- คำขอข้ามโดเมน ถ้าฉันทำคำขอ ajax จาก techjunkie.com ไปยังไฟล์ใน whereever.com (โดเมนที่ต่างกันทั้งหมด) ซึ่งจะเป็นคำขอข้ามโดเมน
- jsonp - หากคุณต้องการเรียกข้อมูลข้ามโดเมนของ JSON JSONP คือสิ่งที่คุณต้องการ
เมื่อใช้ Synchronous
ก่อนอื่นคุณควรทราบว่าการตั้งค่า async เป็น false จะทำให้เบราว์เซอร์ของคุณหยุดทำงาน มันล็อคมันสมบูรณ์ ไม่ใช่เฉพาะหน้าเว็บของคุณ แต่เป็นทุกหน้าที่ผู้ใช้อาจเปิด ตัวอย่างเช่นหากเซิร์ฟเวอร์ของคุณช้าลงคำขอกลางคุณปิดใช้งานเบราว์เซอร์ของตนอย่างถูกต้องจนกว่าเซิร์ฟเวอร์ของคุณจะมีโอกาสติดตามและส่งต่อข้อมูลที่จำเป็นได้
แทนที่จะเสี่ยงกับการเรียกซิงโครนัสเพียงแค่ระบุฟังก์ชันการโทรกลับในความสำเร็จหรือข้อผิดพลาด คุณเข้าสู่จุดสิ้นสุดเดียวกันโดยไม่ทำให้ประสบการณ์การท่องเว็บของผู้ใช้เสียหาย ในระยะสั้นอย่าใช้สายซิงโครไนซ์ ไม่ดีสำหรับแอ็พพลิเคชันและ UX ของคุณ