To install click the Add extension button. That's it.

The source code for the WIKI 2 extension is being checked by specialists of the Mozilla Foundation, Google, and Apple. You could also do it yourself at any point in time.

4,5
Kelly Slayton
Congratulations on this excellent venture… what a great idea!
Alexander Grigorievskiy
I use WIKI 2 every day and almost forgot how the original Wikipedia looks like.
Live Statistics
Spanish Articles
Improved in 24 Hours
Added in 24 Hours
What we do. Every page goes through several hundred of perfecting techniques; in live mode. Quite the same Wikipedia. Just better.
.
Leo
Newton
Brights
Milds

De Wikipedia, la enciclopedia libre

La carga diferida (en inglés lazy loading) es un patrón de diseño comúnmente usado en la programación informática que consiste en retrasar la carga o inicialización de un objeto hasta el mismo momento de su utilización. Esto contribuye a la eficiencia de los programas, evitando la precarga de objetos que podrían no llegar a utilizarse. El opuesto de la carga diferida es la carga previa, precarga o eager loading.

YouTube Encyclopedic

  • 1/3
    Views:
    27 067
    18 042
    16 415
  • Lazy Loading design pattern
  • Part 8 Lazy loading in LINQ to SQL
  • Part 10 Difference between eager loading and lazy loading

Transcription

Implementaciones

Existen cuatro formas comunes de implementar la carga diferida: lazy initialization; virtual proxy; ghost y value holder. Cada uno tiene sus propias ventajas y desventajas.

Inicialización diferida

Con inicialización diferida, el objeto a ser cargado de manera diferida es originalmente asignado como un valor nulo y cada petición para el objeto verifica si es nulo y lo crea "sobre la marcha" antes de devolverlo, como puede verse en este ejemplo escrito en C#:

private int myWidgetID;
private Widget myWidget = null;
 
public Widget MyWidget 
{
    get 
    {
        if (myWidget == null) 
        {
            myWidget = Widget.Load(myWidgetID);
        }
        
        return myWidget;
    }
}

O con el operador coalescente para nulidad '??'

private int myWidgetID;
private Widget myWidget = null; 

public Widget MyWidget 
{
   get { return myWidget = myWidget ?? Widget.Load(myWidgetID);  }
}

Este método es el más sencillo de implementar, sin embargo, si nulo es un valor legítimo, puede hacerse necesario usa un objeto como placeholder para indicar que no ha sido inicializado.

Proxy virtual

Es un objeto con la misma interfaz que el objeto real. La primera vez que su método es llamado carga el objeto real y lo delega.

Fantasma

Un "fantasma" es el objeto que se quiere cargar en un estado parcial. Pues solo contener el identificador del objeto, pero carga sus propios datos desde la primera vez que una de sus propiedades sea accedida. Por ejemplo, considere que el usuario está a punto de hacer una petición de contenido desde un formulario en línea. Al momento de la creación todo lo que sabemos es que se accederá a cierto contenido, pero que cómo o a qué contenido se desconoce aún. Ejemplo con PHP:

$usrData = array (
    "UID" = > uniqid(),
    "requestTime" => microtime( true ),
    "dataType" => "",
    "request" => "",
);

if (isset( $_POST['data'] ) && $usrData) {
    //...

}

Contenedor de Valor

Un Contenedor de Valor es un objeto genérico que se encarga del comportamiento de la inicialización diferida y aparece en lugar de los campos del objeto:

private ValueHolder<Widget> valueHolder;
 
public Widget MyWidget 
{
    get
    {
        return valueHolder.GetValue();
    }
}

Véase también

Referencias

Esta página se editó por última vez el 18 ago 2023 a las 00:01.
Basis of this page is in Wikipedia. Text is available under the CC BY-SA 3.0 Unported License. Non-text media are available under their specified licenses. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc. WIKI 2 is an independent company and has no affiliation with Wikimedia Foundation.