ฉันกำลังทดสอบความแม่นยำของการsetTimeout
ใช้การทดสอบนี้ ตอนนี้ฉันสังเกตว่า (ตามที่คาดไว้) setTimeout
ไม่ค่อยแม่นยำนัก แต่สำหรับอุปกรณ์ส่วนใหญ่ไม่แม่นยำอย่างมาก ตอนนี้ถ้าฉันเรียกใช้การทดสอบใน Chrome และปล่อยให้มันทำงานในแท็บพื้นหลัง (ดังนั้นให้เปลี่ยนไปใช้แท็บอื่นและเรียกดูที่นั่น) กลับไปที่การทดสอบและตรวจสอบผลลัพธ์ (หากการทดสอบเสร็จสิ้น) จะมีการเปลี่ยนแปลงอย่างมาก ดูเหมือนว่าการหมดเวลาจะทำงานช้าลงมาก ทดสอบใน FF4 หรือ IE9 สิ่งนี้ไม่เกิดขึ้น
ดูเหมือนว่า Chrome จะระงับหรืออย่างน้อยก็ชะลอการเรียกใช้จาวาสคริปต์ในแท็บที่ไม่มีโฟกัส ไม่สามารถหาข้อมูลเกี่ยวกับเรื่องนี้ได้มากนัก หมายความว่าเราไม่สามารถรันงานเบื้องหลังได้เช่นการตรวจสอบเป็นระยะ ๆ บนเซิร์ฟเวอร์โดยใช้การเรียก XHR และsetInterval
(ฉันสงสัยว่าจะเห็นพฤติกรรมเดียวกันsetInterval
นี้จะเขียนการทดสอบถ้ามีเวลาอยู่กับฉัน)
มีใครเจอแบบนี้บ้าง? จะมีวิธีแก้ปัญหาสำหรับการระงับ / การชะลอตัวนี้หรือไม่? คุณจะเรียกมันว่าจุดบกพร่องหรือไม่และฉันควรแจ้งว่าเป็นข้อบกพร่อง
transition
ดังนั้นจึงไม่ใช่การเปลี่ยน div ทั้งหมดในเวลาเดียวกัน แต่จริงๆแล้ว 15ms หลังจากแต่ละอันสร้างเอฟเฟกต์การหมุน เมื่อฉันไปที่แท็บอื่นและกลับมาหลังจากนั้นสักครู่การเปลี่ยน div ทั้งหมดในเวลาเดียวกันและsetTimeOut
จะถูกละเว้นโดยสิ้นเชิง ไม่ใช่ปัญหาใหญ่สำหรับโครงการของฉัน แต่เป็นการเพิ่มที่แปลกและไม่ต้องการ