Sobes.tech
Junior — Middle

Ποια είναι τα χαρακτηριστικά που διαφέρουν μεταξύ της λειτουργίας καθυστερημένης φόρτωσης και της κανονικής φόρτωσης δεδομένων;

sobes.tech AI

Απάντηση από AI

Ο τρόπος φόρτωσης lazy (lazy loading) διαφέρει από τη συνηθισμένη φόρτωση στο ότι τα δεδομένα ή οι πόροι δεν φορτώνονται αμέσως κατά την αρχικοποίηση, αλλά μόνο τη στιγμή της άμεσης χρήσης τους.

Συνηθισμένη φόρτωση σημαίνει ότι όλα τα απαραίτητα δεδομένα φορτώνονται εκ των προτέρων, για παράδειγμα κατά την εκκίνηση της εφαρμογής ή κατά το άνοιγμα της οθόνης. Αυτό μπορεί να οδηγήσει σε μεγάλους χρόνους αναμονής και υψηλή κατανάλωση μνήμης.

Lazy loading επιτρέπει την εξοικονόμηση πόρων και την επιτάχυνση της εκκίνησης, φορτώνοντας τα δεδομένα κατά ανάγκη. Για παράδειγμα, στο iOS, αυτό εφαρμόζεται συχνά κατά τη φόρτωση εικόνων σε έναν πίνακα: οι εικόνες φορτώνονται μόνο όταν το κελί γίνεται ορατό.

Παράδειγμα σε Swift με lazy loading μιας εικόνας:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
    let imageURL = imageURLs[indexPath.row]
    // Lazy loading της εικόνας
    loadImageAsync(from: imageURL) { image in
        DispatchQueue.main.async {
            cell.imageView?.image = image
            cell.setNeedsLayout()
        }
    }
    return cell
}