เมื่อใช้โหมดเส้นทาง/มุมมองใน AngularJS เพื่อสร้างเว็บไซต์หรือแอปพลิเคชันขนาดใหญ่การโหลดไฟล์ที่กำหนดเองทั้งหมดเช่นคอนโทรลเลอร์และเทมเพลตในระหว่างการเริ่มต้นไม่ใช่ความคิดที่ดี วิธีที่ดีที่สุดคือโหลดเฉพาะไฟล์ที่ต้องการเมื่อเริ่มต้น ไฟล์เหล่านี้อาจขึ้นอยู่กับการเชื่อมต่อเดียวหรือหลายไฟล์อย่างไรก็ตามพวกเขาใช้เส้นทางเฉพาะเท่านั้น เมื่อเราสลับเส้นทางไฟล์ที่ไม่ได้โหลดจะถูกโหลดตามต้องการ สิ่งนี้ไม่เพียง แต่ช่วยเพิ่มความเร็วในการเริ่มต้นหน้าเท่านั้น แต่ยังป้องกันการเสียแบนด์วิดท์
บทความส่วนใหญ่บนอินเทอร์เน็ตพูดคุยเกี่ยวกับการโหลดตัวควบคุมที่ขี้เกียจผ่าน $ RouteProvider และบริการของบุคคลที่สาม ตัวอย่างเช่นการโหลดตัวควบคุม AngularJS ตามความต้องการอธิบายอย่างละเอียด อย่างไรก็ตามมีบทความเกี่ยวกับการโหลดตัวควบคุมที่ขี้เกียจ HTML/เทมเพลตที่มี $ stateprovider แม้ว่าฉันได้ดูซอร์สโค้ดจำนวนมากที่เกี่ยวข้องกับ $ stateprovider และแก้ไขปัญหาการโหลดขี้เกียจของ HTML/เทมเพลต แต่ก็ยังไม่ได้แก้ปัญหาการโหลดขี้เกียจของคอนโทรลเลอร์ซึ่งน่าเสียดาย เนื่องจากปัญหาเวลาผลการสอบสวนจะถูกคัดออกก่อนและการสอบสวนจะดำเนินต่อไปในอนาคต
เกี่ยวกับการโหลดขี้เกียจของ HTML/เทมเพลตคุณต้องวางไฟล์ HTML และไฟล์โฮมเพจในไดเรกทอรีที่แตกต่างกันมิฉะนั้นจะถูกโหลดโดยอัตโนมัติ ในทำนองเดียวกันคุณไม่สามารถใช้ TemplateUrl เพื่อระบุไฟล์ไม่เช่นนั้นจะมีการโหลดโดยอัตโนมัติ คุณสมบัติเทมเพลตของ $ stateprovider.state รองรับค่าสตริงและฟังก์ชั่นดังนั้นฟังก์ชันสามารถกำหนดให้โหลดและแคชไฟล์ HTML เพื่อป้องกันการโหลดไฟล์ซ้ำ ฉันต้องการให้คอนโทรลเลอร์ทำสิ่งเดียวกัน แต่น่าเสียดายที่ฉันไม่พบคำจำกัดความของฟังก์ชั่นคอนโทรลเลอร์ ฉันลองใช้วิธีการมากมาย แต่ล้มเหลว ฉันจะศึกษาซอร์สโค้ดในอนาคตเพื่อดูสิ่งที่ขาดหายไป ฉันจะอัปโหลดรหัสโดยตรงตรรกะไม่ซับซ้อนดังนั้นฉันจะไม่พูดมาก
// บันทึก HTML และคอนโทรลเลอร์ที่โหลดเพื่อป้องกันการโหลดเครือข่ายที่ซ้ำกันโหลด $ ionic.files = {html: {}, คอนโทรลเลอร์: {}}; // ประกาศวิธีการโหลด html ล่าช้า $ ionic.gethtml = ฟังก์ชั่น gethtml (ชื่อ) โหลด html และ cache $ ionic.files.html [name] = jQuery.ajax ({url: 'views/' + name + ".html", async: false}) responsetext;} return $ ionic.files.html [name]; $ .getScript ('สินทรัพย์/คอนโทรลเลอร์/' + ชื่อ + '.js'); jQuery.ajax ({"url": 'สินทรัพย์/คอนโทรลเลอร์/' + ชื่อ + '.js', "ประเภทข้อมูล": "สคริปต์", "async": false}); // console.log ("load" "/ล็อกอิน", คอนโทรลเลอร์: ResolveController ("LoginController"), เทมเพลต: function () {return $ ionic.gethtml ("เข้าสู่ระบบ");}});ข้างต้นเป็นคำอธิบายแบบเต็มของ AngularJS ล่าช้าในการโหลดเทมเพลต HTML ที่แนะนำโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!