Apa yang ingin dimuat?

161

Apa yang ingin dimuat? Saya kode dalam PHP / JS tetapi jawaban yang lebih umum akan baik-baik saja.

Saya melihat banyak pertanyaan tentang Java & Ruby, tetapi saya tidak tahu bahasa-bahasa ini, dan saya kesulitan membaca kode. Saya tidak tahu apa yang harus dilakukan sejak awal

Quamis
sumber
Pertanyaan yang bagus
PA-GW

Jawaban:

383

Ada tiga tingkatan:

  1. Ingin memuat: Anda melakukan segalanya saat diminta. Contoh klasik adalah ketika Anda mengalikan dua matriks. Anda melakukan semua perhitungan. Itu bersemangat memuat;
  2. Pemuatan malas: Anda hanya melakukan perhitungan bila diperlukan. Pada contoh sebelumnya, Anda tidak melakukan perhitungan apa pun hingga Anda mengakses elemen dari matriks hasil; dan
  3. Pemuatan berlebihan: di sinilah Anda mencoba dan mengantisipasi apa yang akan diminta pengguna dan memuatnya.

Saya harap itu masuk akal dalam konteks yang Anda lihat.

Biarkan saya memberi Anda contoh "Webby".

Bayangkan sebuah halaman dengan rollover gambar seperti untuk item menu atau navigasi. Ada tiga cara pemuatan gambar dapat berfungsi pada halaman ini:

  1. Muat setiap gambar yang diperlukan sebelum Anda membuat halaman ( bersemangat );
  2. Hanya memuat gambar yang ditampilkan di halaman memuat dan memuat yang lain jika / ketika mereka diperlukan ( malas ); dan
  3. Muat hanya gambar yang ditampilkan pada pemuatan halaman. Setelah halaman dimuat, muat gambar lain di latar belakang jika Anda membutuhkannya ( terlalu bersemangat ).

Masuk akal?

cletus
sumber
3
Meskipun Anda berlebihan dengan melampaui pertanyaan spesifik; ini masih merupakan jawaban yang sangat bagus. Ini pendek, sederhana dan memberi contoh.
Phil
23

Ini kebalikan dari pemuatan malas , yang menentang inisialisasi objek hingga objek diperlukan. Cepat memuat menginisialisasi objek saat pembuatan.

Bill the Lizard
sumber
1
Saya bisa menambahkan bahwa istilah-istilah ini umumnya digunakan (dan mungkin berasal dari?) Dalam konteks ORM (Object Relational Mapper), di mana Anda memetakan objek ke tabel dalam database relasional.
Loki
10

Jika Anda membayangkan Anda memiliki objek yang disebut orang yang memiliki nama, tanggal lahir dan jumlah detail yang kurang kritis, katakanlah warna favorit, program tv favorit.

Untuk malas memuat kelas ini Anda akan memulai membacanya di barangkali dari basis data semua inti lebih sering digunakan rincian (katakanlah nama dan tanggal lahir) dan hanya membaca dalam rincian kurang digunakan ketika / jika mereka diperlukan, ingin memuat adalah sebaliknya , yaitu Anda memuat semua detail secara bersamaan.

Manfaat pemuatan malas sering disebut sebagai efisiensi, namun jika objek tidak begitu kompleks atau efisien bukan masalah pemuatan yang diinginkan dapat digunakan

Dave D
sumber
7
Ketika Anda memikirkannya, lazy loading lebih banyak tentang lebih sedikit memori dan lebih banyak perhitungan pada setiap pemanggilan fungsi, sementara pemuatan yang penuh semangat akan menggunakan lebih banyak memori dan lebih banyak komputasi saat kelas dibuat dan lebih sedikit perhitungan saat fungsi dipanggil.
Loki
0

Eager loading juga digunakan dalam Angular 8. Ini hanya berarti bahwa instan aplikasi dimuat di dalam browser kita secara otomatis, langsung mendapatkan semua kode di dalam modul tertentu, misalnya, katakan Anda baru saja membuat Modul Auth dengan Signin dan Signup komponen untuk itu yang diimpor ke Modul Aplikasi .

Sebaliknya, ada pemuatan malas , yaitu ketika kita memberi tahu Modul Aplikasi yang memuat Modul Auth ke dalamnya, untuk hanya memuat Modul Auth pada titik waktu tertentu seperti ketika pengguna pergi ke rute tertentu.

Daniel
sumber