กำลังโหลดคืออะไร


162

กำลังโหลดคืออะไร ฉันเขียนโค้ดใน PHP / JS แต่คำตอบที่ธรรมดากว่านั้นใช้ได้

ฉันเห็นคำถามมากมายเกี่ยวกับ Java & Ruby แต่ฉันไม่รู้ภาษาเหล่านี้และฉันพบว่ามันยากที่จะอ่านโค้ด ฉันไม่รู้ว่าควรทำอะไรตั้งแต่แรก


เป็นคำถามที่ดีมาก
PA-GW

คำตอบ:


384

มีสามระดับ:

  1. กำลังโหลด:คุณทำทุกอย่างเมื่อถูกถาม ตัวอย่างคลาสสิกคือเมื่อคุณคูณเมทริกซ์สองตัว คุณทำการคำนวณทั้งหมด มันกระตือรือร้นที่จะโหลด
  2. การโหลดที่ขี้เกียจ:คุณจะทำการคำนวณเมื่อจำเป็นเท่านั้น ในตัวอย่างก่อนหน้านี้คุณไม่ได้ทำการคำนวณใด ๆ จนกว่าคุณจะเข้าถึงองค์ประกอบของเมทริกซ์ผลที่; และ
  3. การโหลดที่มากเกินไป:นี่เป็นที่ที่คุณลองและคาดการณ์ว่าผู้ใช้จะขออะไรและโหลดล่วงหน้า

ฉันหวังว่ามันสมเหตุสมผลในบริบทที่คุณเห็น

ให้ฉันยกตัวอย่าง "Webby"

ลองนึกภาพหน้าด้วยภาพแบบโรลโอเวอร์เช่นรายการเมนูหรือการนำทาง มีสามวิธีในการโหลดภาพที่สามารถทำงานได้ในหน้านี้:

  1. โหลดทุกภาพเดียวที่จำเป็นก่อนที่จะแสดงหน้า ( กระตือรือร้น );
  2. โหลดเฉพาะภาพที่แสดงบนหน้าโหลดและโหลดรูปอื่นถ้า / เมื่อจำเป็น ( ขี้เกียจ ); และ
  3. โหลดเฉพาะภาพที่แสดงในการโหลดหน้า หลังจากหน้าโหลดโหลดภาพอื่น ๆ ไว้ล่วงหน้าในพื้นหลังในกรณีที่คุณต้องการ ( over-eager )

ทำให้รู้สึก?


3
แม้ว่าคุณจะลงน้ำมากเกินกว่าคำถามเฉพาะ นี้ยังคงเป็นคำตอบที่ดี มันสั้นง่ายและให้ตัวอย่าง
Phil

23

มันเป็นสิ่งที่ตรงกันข้ามกับการโหลดแบบสันหลังยาวซึ่งเป็นการยกเลิกการกำหนดค่าเริ่มต้นของวัตถุจนกว่าวัตถุจะต้องการ โหลดกระตือรือร้นเริ่มต้นวัตถุเมื่อสร้าง


1
ฉันสามารถเพิ่มได้ว่าคำเหล่านี้มักจะใช้ (และอาจจะมาจาก?) ในบริบทของ ORM (Object Relational Mapper) ที่คุณแมปวัตถุกับตารางในฐานข้อมูลเชิงสัมพันธ์
Loki

10

หากคุณคิดว่าคุณมีวัตถุที่เรียกว่าบุคคลที่มีชื่อวันเดือนปีเกิดและจำนวนรายละเอียดที่สำคัญน้อยกว่านั้นให้พูดสีที่ชอบรายการทีวีที่ชื่นชอบ

หากต้องการขี้เกียจโหลดคลาสนี้คุณจะสามารถอ่านได้จากฐานข้อมูลรายละเอียดที่ใช้บ่อยกว่าปกติ (พูดชื่อและวันเดือนปีเกิด) และอ่านเฉพาะรายละเอียดที่ใช้น้อยกว่าเมื่อ / ถ้าจำเป็นการโหลดกระตือรือร้นเป็นสิ่งที่ตรงกันข้าม คือคุณโหลดรายละเอียดทั้งหมดพร้อมกัน

ประโยชน์ของการโหลดแบบสันหลังยาวมักถูกอ้างถึงว่าเป็นสิ่งที่มีประสิทธิภาพอย่างไรก็ตามหากวัตถุนั้นไม่ซับซ้อนหรือมีประสิทธิภาพไม่ต้องกังวลเรื่องการโหลดอย่างกระตือรือร้น


7
เมื่อคุณคิดเกี่ยวกับมันการโหลดที่ขี้เกียจนั้นเป็นเรื่องเกี่ยวกับหน่วยความจำน้อยลงและการคำนวณที่มากขึ้นในแต่ละการเรียกใช้ฟังก์ชันในขณะที่การโหลดที่กระตือรือร้นจะใช้หน่วยความจำมากขึ้นและการคำนวณที่มากขึ้นเมื่อสร้างชั้นเรียน
Loki

0

โหลดกระตือรือร้นที่ยังใช้ในเชิงมุม 8. มันก็หมายความว่าทันทีแอพลิเคชันที่มีการโหลดเบราว์เซอร์ที่เราโดยอัตโนมัติทันทีที่ได้รับรหัสทั้งหมดภายในโมดูลโดยเฉพาะอย่างยิ่งสำหรับตัวอย่างเช่นสมมติว่าคุณเพียงแค่สร้างAuth โมดูลที่มีการลงชื่อเข้าและลงทะเบียนองค์ประกอบไปที่ได้รับนำเข้าเป็นApp โมดูล

ในทางตรงกันข้ามมีการโหลดแบบสันหลังยาวซึ่งก็คือเมื่อเราบอกแอพโมดูลซึ่งมีโมดูล Authโหลดเข้ามาเพื่อโหลดโมดูล Authณ เวลาใดเวลาหนึ่งเช่นเมื่อผู้ใช้ไปยังเส้นทางที่กำหนด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.