UPDATE
ดูเหมือนว่าการอัปเดต Firefox เป็น 46 จะช่วยแก้ไขปัญหาได้!
การตรวจสอบต้นฉบับ
ในขณะที่ฉันกำลังเผชิญกับปัญหาที่น่ารำคาญนี้ฉันจึงตัดสินใจลอง
องค์ประกอบ
- เซิร์ฟเวอร์ Ubuntu 12.4
- PHP 5.5.30
- MySQL 5.6.27
- Magento 2.0.4 ติดตั้งใหม่โดยไม่มีตัวอย่าง
- โหมดนักพัฒนาซอฟต์แวร์ที่ปิดใช้งานแคช
การจำลองปัญหา
ตั้งแต่แรกพบปัญหานี้ดูสุ่มโดยสิ้นเชิงสำหรับฉัน อย่างไรก็ตามหลังจากการทดสอบหลายครั้งฉันพยายามหาวิธีจำลองปัญหา
เบราว์เซอร์
ก่อนอื่นฉันไม่สามารถทำซ้ำปัญหาบน Google Chrome, Internet Explorer 11 หรือ Windows Safari เก่า 5.2.17 ฉันใช้ FireFox เป็นหลัก (45.0.2) และไม่ค่อยใช้ Google Chrome แม้หลังจากที่ฉันพบวิธีการทำซ้ำปัญหาฉันยังไม่สามารถทำซ้ำใน Chrome
แท็บ
คุณต้องเปิดหลายแท็บบน FireFox เพื่อให้สามารถทำซ้ำปัญหาได้
ขั้นตอน
- เปิดแผง admin และเข้าสู่ระบบ
- เมื่อคุณอยู่บนแดชบอร์ดคุณสามารถคลิกที่รายการเมนูใด ๆ ฉันมักจะคลิกที่ไอคอนแดชบอร์ดอีกครั้ง
- ทันทีที่คุณคลิกรายการเมนูให้คลิกที่หนึ่งในแท็บที่เปิดอยู่และเรียกดูอินเทอร์เน็ตต่อไปในขณะที่คุณรอให้แผงผู้ดูแลระบบของคุณโหลดเสร็จ (ขึ้นอยู่กับไอคอนการหมุนถัดจากชื่อแท็บ)
- โชคไม่ดีที่คุณจะไม่โหลดหน้านั้น
ตรวจสอบ
ดังนั้นดูเหมือนว่าเมื่อลูกค้าไม่ได้มุ่งเน้นไปที่แท็บของผู้ดูแลระบบแผงวีโอไอพี 2 ดูเหมือนว่าจะไม่โหลดทรัพยากรทั้งหมดสำหรับเว็บไซต์ที่จะโหลดทั้งหมด
สิ่งที่ฉันสังเกตเห็นเมื่อฉันกลับมาที่หน้าแผงผู้ดูแลระบบโหลดไม่สิ้นสุดคือมีทรัพยากรจำนวนมากที่โหลดสำเร็จ
ดังที่เฟเบียนกล่าวว่าไม่มีข้อผิดพลาดในคอนโซลไม่มีทรัพยากรที่ยังโหลดอยู่และไม่มีทรัพยากรที่ไม่สามารถโหลดได้ ทุกอย่างดูเหมือนว่าหน้าเว็บกำลังโหลดเสร็จ
อย่างไรก็ตามเมื่อฉันคลิกปุ่มหยุดการโหลดของ Firefox (X ในแถบ URL) ฉันสังเกตเห็นว่ามีการเพิ่มทรัพยากรหลายอย่างในแท็บเครือข่ายที่ไม่ได้อยู่ที่นี่เมื่อหน้าเว็บอยู่ในสถานะโหลดไม่สิ้นสุด
โปรดทราบ: ภาพหน้าจอด้านล่างนี้ใช้สำหรับแดชบอร์ดเท่านั้นฉันสังเกตเห็นว่ามีการโหลดทรัพยากรมากขึ้นหลังจากที่ฉันคลิกปุ่มหยุดโหลดบนหน้าการตั้งค่าเช่น
ดังนั้นสำหรับหน้าแดชบอร์ดทรัพยากรเหล่านั้นถูกเพิ่มเข้ามาหลังจากฉันคลิกปุ่มหยุดโหลด
เมื่อโหลดหน้าเว็บตามปกติโดยไม่สลับไปยังแท็บอื่นทรัพยากรต่อไปนี้จะถูกโหลดหลังจากโหลด DOM (ฉันถือว่าผ่าน AJAX) คุณสามารถสังเกตเห็นเส้นสีเทาหนาระหว่างหน้าและแหล่งข้อมูลด้านบน:
ดังนั้นด้วยเหตุผลบางอย่างทรัพยากรต่อไปนี้จะถูกโหลดโดยอัตโนมัติเมื่อเพจอยู่ในสถานะโหลดไม่สิ้นสุด แต่จะโหลดหลังจากโหลด DOM เมื่อโหลดหน้าเว็บได้ดี:
/static/adminhtml/Magento/backend/en_US/Magento_Ui/templates/modal/modal-popup.html
/static/adminhtml/Magento/backend/en_US/Magento_Ui/templates/modal/modal-slide.html
/static/adminhtml/Magento/backend/en_US/Magento_Ui/templates/modal/modal-custom.html
/static/adminhtml/Magento/backend/en_US/mage/apply/scripts.js
นั่นเป็นวิธีที่ฉันเข้าสู่ภารกิจการดีบักฉันคิดว่ายังมีอีกหลายอย่างที่เราสามารถทำได้เพื่อทดสอบและ จำกัด ปัญหา แต่ฉันไม่มีเวลาทำการทดสอบเพิ่มเติมฉันจะกลับมาหาฉันเมื่อฉันมีเวลา
การสืบสวนเพิ่มเติม
ดังนั้นฉันเลยติดตั้งปลั๊กอิน HTTPFox บน FireFox ของฉัน
นี่คือสิ่งที่ฉันได้รับเมื่อฉันคลิกปุ่มหยุดโหลดหลังจากโหลด 1 นาที (คุณจะเห็นว่าjquery.storageapi.min.js
มี 59s ในคอลัมน์เวลา) แถวที่เน้นคือทรัพยากรที่โหลดหลังจากฉันหยุดการโหลด:
ฉันพยายามอัปเกรดไลบรารี jquery.storageapi ด้วยรุ่นล่าสุดที่มีอยู่ใน GitHub แต่ดูเหมือนจะไม่สามารถแก้ไขปัญหาได้อย่างน่าเสียดาย
เนื่องจากการโหลด favicon อยู่ในรายการฉันจึงให้ความเห็นรหัสที่เพิ่ม favicon ไว้ที่ส่วนหัว แต่ก็ไม่ได้แก้ไขปัญหาเช่นกัน
ฉันพยายามดีบักdomReady.js
ไฟล์เนื่องจากชื่อดูเหมือนว่าอาจเป็นความผิดพลาด แต่ไม่มีโอกาส
และนี่คือaccess.log
ไฟล์สองไฟล์:
ยังไม่สามารถเข้าใจได้ว่าเกิดอะไรขึ้นที่นี่
ปรับปรุง
ฉันเพิ่งทำการเปลี่ยนแปลงการติดตั้งสองครั้ง:
- อัพเกรด FireFox เป็น 46.0
- อัพเกรดจาก 2.0.4 เป็น 2.0.5
ตอนนี้ฉันไม่สามารถทำซ้ำปัญหาอีกต่อไป