Ahora, el problema es que no todos usan el mismo teléfono que yo. Ojalá lo hicieran. Eso simplificaría mucho mi vida. Sin embargo, incluso si solo consideramos los iPhones, hay toneladas y toneladas de tamaños diferentes. Por ejemplo, si comparo un iPhone 6 y un iPhone 12 Pro Max, puedes ver que la misma imagen, utilizando el ancho de la pantalla y una relación de 3 a 1, será muy diferente.
Entonces, si solo tienes una imagen de origen que vas a subir, podrías sentirte tentado a subir la imagen en 1290 por 860 y que todos los demás tengan que escalarla. El problema con eso es que ahora tus dispositivos de gama baja, que ya están luchando, son los que tienen que convertir esta imagen al tamaño que tienes disponible. Afortunadamente, este es un problema que se ha resuelto. Si estás utilizando un CDN, prácticamente todos los CDNs modernos tendrán esta funcionalidad, o puedes crear el tuyo propio, donde básicamente el dispositivo calcula el área que necesita y solicita la imagen en un tamaño específico. Entonces, tu servidor diría: 'Oh, quieres 750 por 500, lo tengo en la caché, aquí lo tienes'. O si no lo tiene, lo calcularía sobre la marcha, lo guardaría en la caché para la próxima vez y lo devolvería.
El problema con esta solución es que todavía hay demasiadas imágenes diferentes. La primera vez, en primer lugar, la primera vez que generamos la imagen, tendrá un par de segundos de costo donde se genera la imagen, por lo que el usuario tiene que esperar. Y en segundo lugar, si estás utilizando un servicio administrado, se vuelve muy costoso porque la mayoría de estos servicios te cobrarán según las transformaciones, por lo que es mucho más barato y mejor utilizar la caché si puedes. La forma de solucionar eso es que generalmente terminarás teniendo una matriz de tamaños admitidos. He elegido bastantes aquí, como 15, pero tendrás paradas admitidas donde dices que vas a admitir una imagen de 600 de ancho o 1,200 de ancho. Y luego, calculas el ancho que necesitas para la imagen y tomas la siguiente mejor imagen, lo que significa que aún no tienes que hacer nada demasiado complicado, pero aún obtienes la optimización de no tener que hacer tantas transformaciones sobre la marcha.
De acuerdo. He hablado mucho sobre esto. También hice una demostración. Así que puedes probarlo. Creo que esto es lo más divertido, si puedes probarlo en tu teléfono. No esperaba que fuera tan grande. Oh wow. Bueno. No estoy seguro de poder hacer esto. Supongo que puedes ver las partes de la derecha, que es la parte importante. El código está a la izquierda. Si no puedes verlo, solo confía en mí.
Comments