บทความนี้อธิบายโดยย่อเกี่ยวกับการใช้งานการโหลดแบบ Lazy Loading ในการควบคุมที่ใช้กันทั่วไป
1. โหลดข้อมูลเมื่อมีการแสดงอินเทอร์เฟซครั้งแรก การโหลดแบบ Lazy Loading ที่ง่ายที่สุดสามารถโหลดข้อมูลได้เมื่อมีการแสดงตัวควบคุมเป็นครั้งแรก ตัวอย่างเช่น หากคุณมีหลายแท็บ ข้อมูลจะถูกโหลดเมื่อผู้ใช้สลับไปใช้สิ่งนี้เท่านั้น แท็บ
วิธีการเสมือน SetVisibleCore มีให้ในการควบคุม .NET เมื่อค่าที่ตรวจพบเป็นจริง และวิธีการนี้ถูกเรียกเป็นครั้งแรก การโหลดแบบ Lazy Loading จะถูกเรียก แต่ฉันไม่แนะนำวิธีนี้เพราะคุณมีที่ที่ดีกว่า
- หากการควบคุมของคุณสืบทอดมาจาก Form หรือ UserControl ขอแนะนำให้โอเวอร์โหลด OnLoad
- หากสืบทอดมาจาก Control OnCreateControl ก็สามารถโอเวอร์โหลดได้
นี่คือตัวอย่างของการโหลดข้อมูลแบบ Lazy Loading:
MyTabPage ระดับสาธารณะ: TabPage {
ป้องกันการแทนที่เป็นโมฆะ OnCreateControl () {
base.OnCreateControl();
string oldText = this.Text;
this.Text = "Loading..";
//TODO: เรียกวิธีการโหลดข้อมูลที่นี่
this.Text = oldText;
-
-
2. ตัวควบคุมแผนผังจะถูกโหลดเมื่อมีการขยายเป็นครั้งแรก
เนื่องจากโหนดทั้งหมดใน TreeView ไม่ได้รับการสืบทอดจาก Control คุณจึงไม่สามารถใช้วิธีการข้างต้นได้ อย่างไรก็ตาม TreeView ให้วิธีการเสมือน OnBeforeExpand วิธีที่ง่ายที่สุดคือการเพิ่มเครื่องหมายโหลดให้กับโหนดที่คุณวางแผนจะใช้การโหลดแบบล่าช้า การขยายตัวครั้งแรกให้ตรวจพบเครื่องหมายนี้
คุณต้องจำไว้ว่าโหนดการโหลดแบบ Lazy Loading ของคุณไม่สามารถรับเหตุการณ์นี้ที่ตำแหน่งรูทได้
3. การโหลดแบบ Lazy ในตาราง
ในโปรแกรม Windows บางตัวใช้เพจจิ้งเพื่อใช้การโหลดแบบ Lazy Loading แต่ประสบการณ์ผู้ใช้ของวิธีนี้แย่มาก หากคุณยังคงต้องการใช้แถบเลื่อน คุณสามารถใช้อินเทอร์เฟซ IBindList ด้วยตนเอง ซึ่งจะเก็บรายการ ID ข้อมูลไว้ภายใน เมื่อแบบฟอร์มขอข้อมูล ตัวควบคุมตารางทั่วไปจะทำงานได้ดี
แต่มีบางอย่างที่ควรสังเกตที่นี่ ตัวอย่างเช่น เมื่อผู้ใช้กด PageDown ตัวควบคุมตารางจะเรียกวิธีการรับข้อมูลอย่างต่อเนื่อง หากเรียกใช้ฐานข้อมูลสำหรับทุกคำขอ ประสิทธิภาพจะต่ำมาก " ทำนายไว้" ถึงคุณอาจต้องอ่านข้อมูล 50 ชิ้นจึงจะสามารถอ่านได้อีก 50 ชิ้นในคราวเดียว
วิธีนี้ไม่มีวิธีแก้ปัญหาเมื่อพูดถึงการเรียงลำดับตาราง
ข้างต้นเป็นเทคนิคทั่วไปของเทคโนโลยีการโหลดแบบ Lazy Loading หากคุณมีวิธีที่ดีกว่านี้ โปรดให้ความกระจ่างแก่ฉันด้วย