• HTML
  • CSS
  • JS

    Nivel 1 JS

    Propiedades

Memoization

Se trata de un concepto aplicable en JavaScript que es sorprendentemente desconocido, ya que por lo general solo es utilizado por aquellos con un gran dominio del lenguaje. Lo que esta funcionalidad hace es acortar tiempos de ejecución de una tarea repetitiva, para que de ese modo la experiencia del usuario sea mucho más óptima.

Esto se logra agregando valores a un array asociativo (comúnmente se les llama "caché"), para que en caso de que ese valor esté asociado a un elemento almacenado previamente este se pueda mostrar sin tener que realizar el proceso nuevamente.

Nota: un array asociativo es aquel en el que se define un nombre que hará la función de índice para el dato, es decir, el nombre que se le defina a cada posición del array estará vinculado a ese respectivo valor.

Ejemplo

En este ejemplo se puede apreciar cómo se ejecuta el concepto de memoization de una forma bastante simple. Una vez se define que el valor de "n" no es 0 o 1, se procede a desarrollar una estructura de condicionales, en los cuales si no existe el array (caché) se crea; por otro lado, si el valor ya existe se muestra y, por último, si este valor no existe se asigna el nombre para el índice del dato y se asigna el valor para este.

De ese modo el dato estará disponible dentro del array, lo que permitirá obtener este valor solo con buscarlo en el array en vez de realizar un proceso completo. Esta técnica es recomendable para aquellos casos en los que se tenga la certeza de que un dato se repetirá numerosas veces, a la vez que si este requiere de un proceso complejo o largo para obtenerlo.

De ese modo, al ejecutar el proceso una vez, se almacenará en el array asociativo, permitiendo que las futuras ocasiones en las que se requiera el dato este se obtenga casi inmediatamente.

Para este tipo de procesos también es una alternativa el usar "web workers"; sin embargo, esta técnica consume muchos menos recursos. De cualquier forma, el usar ambos conceptos es completamente posible.

Contacto

¿Quién soy?

Mi nombre es Carlos Miguel Puche Moreno, estoy estudiando programación web de forma autodidacta. Si quieres saber más, visita mi perfil de GitHub haciendo clic en mi fotografía, o visita mis redes sociales:

Redes

Currículum