Sobes.tech
Junior — Middle

Care sunt diferențele dintre caracteristicile modului de încărcare întârziată și încărcarea normală a datelor?

sobes.tech AI

Răspuns de la AI

Modulul de încărcare întârziată (lazy loading) diferă de încărcarea obișnuită prin faptul că datele sau resursele nu sunt încărcate imediat la inițializare, ci doar în momentul utilizării lor directe.

Încărcarea obișnuită presupune că toate datele necesare sunt încărcate în prealabil, de exemplu, la pornirea aplicației sau la deschiderea ecranului. Acest lucru poate duce la timp de așteptare lungi și consum mare de memorie.

Lazy loading permite economisirea resurselor și accelerarea pornirii, încărcând datele după necesitate. De exemplu, pe iOS, acest lucru se aplică frecvent la încărcarea imaginilor într-un tabel: imaginile sunt încărcate doar când celula devine vizibilă.

Exemplu în Swift cu încărcare întârziată a unei imagini:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
    let imageURL = imageURLs[indexPath.row]
    // Încărcare întârziată a imaginii
    loadImageAsync(from: imageURL) { image in
        DispatchQueue.main.async {
            cell.imageView?.image = image
            cell.setNeedsLayout()
        }
    }
    return cell
}