นี่คือตัวแปร jQuery ที่ใช้ภายใน แต่ไม่มีเหตุผลที่จะซ่อนดังนั้นจึงมีให้ใช้ เพียงแค่หัวขึ้นมันจะกลายเป็นjquery.ajax.active
รุ่นถัดไป ไม่มีเอกสารประกอบเนื่องจากมีการเปิดเผยแต่ไม่ได้อยู่ใน API อย่างเป็นทางการมีหลายสิ่งหลายอย่างที่เป็นเช่นนี้เช่นjQuery.cache
(ที่ไปทั้งหมดjQuery.data()
)
ฉันคาดเดาที่นี่จากการใช้งานจริงในไลบรารีดูเหมือนว่าจะมีไว้เพื่อรองรับโดยเฉพาะ$.ajaxStart()
และ$.ajaxStop()
(ซึ่งฉันจะอธิบายเพิ่มเติม) แต่พวกเขาสนใจว่าจะเป็น 0 หรือไม่เมื่อคำขอเริ่มหรือหยุด แต่เนื่องจากไม่มีเหตุผลที่จะซ่อนมันจึงเปิดเผยให้คุณเห็นจำนวนคำขอ AJAX พร้อมกันที่เกิดขึ้นจริงในปัจจุบัน
เมื่อ jQuery เริ่มคำขอ AJAX สิ่งนี้จะเกิดขึ้น :
if ( s.global && ! jQuery.active++ ) {
jQuery.event.trigger( "ajaxStart" );
}
นี่คือสาเหตุที่ทำให้$.ajaxStart()
เหตุการณ์เริ่มทำงานจำนวนการเชื่อมต่อเพิ่งเปลี่ยนจาก 0 เป็น 1 ( jQuery.active++
ไม่ใช่ 0 หลังจากนี้และ!0 == true
) ซึ่งหมายความว่าคำขอแรกพร้อมกันในปัจจุบันเริ่มต้นขึ้น สิ่งเดียวกันเกิดขึ้นที่ปลายอีกด้านหนึ่ง เมื่อคำขอ AJAX หยุดลง (เนื่องจากมีการbeforeSend
ยกเลิกผ่านreturn false
หรือฟังก์ชันการโทร ajax complete
ทำงาน ):
if ( s.global && ! --jQuery.active ) {
jQuery.event.trigger( "ajaxStop" );
}
นี่คือสาเหตุที่ทำให้$.ajaxStop()
เหตุการณ์เริ่มทำงานจำนวนคำขอลดลงเหลือ 0 ซึ่งหมายความว่าการโทร AJAX พร้อมกันครั้งสุดท้ายเสร็จสิ้น ตัวจัดการ AJAX ระดับโลกคนอื่น ๆ ก็ยิงเข้ามาที่นั่นตลอดทางเช่นกัน