Juan Castro
ProfesorLautaro Strappazzon
Lautaro Strappazzon
Juan Castro
ProfesorJulian Franco
maximo galarza
Bramucci Candela
Ricardo Alfonso Chavez Vilcapoma
Ricardo Andres Ojeda Silva
LEONARD CUENCA
Henry Alexander Velásquez Rosas
Jonathan Javier Barsky
Oscar Fuentes Esteves
Diego Reyes Cabrera
Christian Velázquez
Fernando Orozco Velasquez
Juan Castro
ProfesorFernando Orozco Velasquez
Gilbert Ardila
Jefred Bedoya
Federico Ivan Llano
Juan Fernando Yepes Muñoz
Fernando Yutiz
Carlos Augusto Rodríguez Miranda
RAÚL ERNESTO VELÁSQUEZ VELASCO
Julian Franco
Juan Castro
ProfesorJulian Franco
Ana Rotela Cabrera
Ulqernesh Karvenae
Ricardo Alfonso Chavez Vilcapoma
Hilo de memes del caché :point_down:
Y ahora vengo del futuro (la próxima clase), ya que ahora sí entendí este meme:
Patrones de caché (en el backend): https://twitter.com/bibryam/status/1528820145354842119?t=pH7pMm7z5tfU8Z8jj0sSLg&s=19 :eyes:
Mis apuntes..
Cache Es la forma en la que le digamos al navegador que nos traiga la última información guardada, es decir que si necesitamos algo de información simplemente envíe lo que tiene en cache.
default no-store reload no-cache force-cache only-if-cache Estos son todos los “condicionales” que el cache permite validar el “estado” de la información
Memoization (Si se escribe así!!) Guardar los cálculos(”Peticiones” que ya hicimos para no repetirlos.
En resumen es:
Crear un objeto. Preguntar si el objeto tiene la información que necesitamos Si sí, usar la información Si no, hacer el fetch y guardar la información en el objeto Consideraciones importantes.
JavaScript únicamente guarda la información en tiempo de ejecución si esta información se hace reload se va a perder.
**Para nuestro proyecto, aplicaria un poco más el cache por el tema de la cantidad de imagenes que se cargan junto con con la vista completa de la misma, todavia no entiendo muy bien pero siento que seria menor carga para el navegador, el usuario y en un caso dado para el backen
recuerden no es lo mismo ++Memoization++ que ++Memorization++
Pensé que era un typo 😬
Según Wiki si lo es 👀
Puedo decir por mi experiencia que el memorization no es el ideal a la hora de hacer una single page application, o al menos en este caso. Cuando estuve haciendo mi proyecto del curso práctico de Consumo de API REST quise utilizar memorization y me di cuenta que al recargar las páginas quedaban en blanco a no ser que estuviese en el home.
Clase 2: Caché vs. memoria
Cache
kaSH no le digan cachePropiedades
Memorization
Pasos
Posibles Problemas
IPA: kˈæʃ
Memoization no me parece recomendable con paginas que reciban datos en tiempo real
Sí, yo también creo que era una práctica de otros tiempos donde la red era lenta y los equipos de cómputo poco poderosos. Con redes 5G y el poder de cómputo actual no parece tan "necesario" perder 2 milisegundos en recargar datos sensibles o actuales.
¿Qué importa mas, un tuit actual que se "dibuje lento" o un tuit viejo que se "dibuje" rápido?
Quizas el problema no sea la velocidad de internet del cliente, sino la capacidad de respuesta del servidor... y por eso se necesite ahorrar peticiones si es necesario
Exactamente antes de comenzar estaba pensando repetir el curso pasado con la API de Platzi, y me surgió ésta misma pregunta: Cómo saber cuándo el backend (productos), ya no existe o ya no tiene el mismo número de productos. Cómo reducir el tiempo de carga.
Consideraría utilizar chaché.
En las lecturas que encontré sobre este tema, leí que no es recomendable hacer “Memoization” en funciones que no seas “puras” (Functional Programming), es decir que es mejor hacerlo en funciones que siempre devuelven el mismo resultado cuando reciben el mismo argumento.
El caché puede ser buena opción porque el navegador ya trata de optimizarlo por defecto, así mientras el navegador mejora el funcionamiento de la página nosotros podemos optimizar otras partes de nuestro código, aunque también consideraría usar LocalStorage o SessionStorage…
Me encantaría echarle un ojo a esa lectura
Si no estoy mal es una lectura tuya jeje, aqui esta el link.
Corrígeme si no capte bien la idea del la lectura 😅
Yo creo que en este caso, y mientras llega el 5g, lo más factible para usar en este proyecto es caché, pero con 5g no creo que se necesite nada de eso, porque la latencia ya no va a existir
Optimización de Consumo de API REST en Frontend
La optimización en frontend no busca acelerar la red, sino evitar peticiones innecesarias mediante dos estrategias fundamentales:
1. Caché (Navegador)
2. Memorización (Código JavaScript)
Consideración Crítica: La Frescura de los Datos
El mayor riesgo de ambas estrategias es la desincronización. Si el backend cambia la información, el frontend podría seguir mostrando datos obsoletos. Evaluar si la aplicación requiere datos en tiempo real (ej. aplicaciones bancarias) es vital para decidir si es seguro implementar estas técnicas.
Comiezo de Cache
Probablemente me equivoque pero voy con todo mi dinero a que la mejor sería caché. Diría yo que sería la mejor porque de esa forma le vamos a permitir al usuario una navegación más ágil casi siempre, mientras que con memoization solo sería más ágil mientras use el sitio, si se le va luz pues F. . Estoy seguro? No sé, pero voy a confiar y encomendarme a Juandc para que todo salga bien
Para la aplicación de PlatziMovies usaría la estrategia de Memoization. Considero que no pueden haber grandes cambios en una sesión, por ende con consultar al backend una sola vez bastaría.
Posible solución:
Actualmente la aplicación Platzi Movies, la carga es aceptable demora un poco en la carga de imágenes por la calidad de las mismas. El uso de cache pude ser útil para ciertas secciones en la app que no cambian como lo es la búsqueda por categoría. En la sección del código que crea las películas por ser algo que varia constantemente es mejor el uso de memorización guardando los datos en un objeto que contenga la información y le póster de las películas
Cache navegador, funciona para proyectos como por ejemplo el consumo de noticias, multimedia o datos relacionados con informacion catastral cuyas actualizaciones son lentas o deben pasar por un proceso de autorizacion para modificar datos.
La memorizacion podria servir por ejemplo para consultar datos de placas de vehiculos, el objeto revisa si la placa aun existe y si existe usas la data sin ejecutar la llamada en el entendido que los datos del auto asosiados a esa placa no van a cambiar casi nunca. Si el objeto revisa que la placa ya no existe en el registro publico o es otra placa y no esta en la memoria deberia hacer la llamada y traer la respuesta.
En el curso de SP del profe Oscar hay una parte que se maneja el Router en un objeto esto seria una especie de Memorization ?
No exactamente. Hay muchas formas de crear tu propio router. Yo elegí hacerlo con la función de router y con hash navogation. Oscar lo hizo directamente con las rutas sin hashes. Y por cada ruta / propidad del objeto de rutas renderiza una ruta distinta. Eso también es una forma excelente de trabajar. . Memoization sería que todos los resultados de fetchs los guardara en un objeto y en cada consulta verificara primero si ya ese objeto de consultas (ojo, consultas, no rutas) ya tienee la información que está buscando.
Super profe ! De verdad que muchisimo más claro ! y gracias por el tiempo de responder, tengo otra pregunta ¿Por qué los comentarios o preguntas no se pueden editar ?
No me di cuenta que habia escrito mal el Memoization !!!! Perdón
Para el ejemplo de PlatziMovies lo mejor seria usar cache
El de películas usaria el de cache ya que no creo que se agregen tantas peliculas por dia, en la parte de memory la usaria para un banco ya que normalmente cuando hay una transacción y esta es realizada y aun no carga con refrescar la pagina se ve el movimiento .
No tengo experiencia con ambas tecnologías, pero según lo explicado por el profe en clase podría decir que caché sería lo ideal para evitar la pérdida de datos al recargar la página con memorization, a no ser que se use localStorage.