Tengo una función simple que crea una imagen y el src es una imagen aleatoria de splash, pero cada vez que llamo a la función genera la misma imagen, por qué y cómo solucionarlo.
function randomImage(){ const img = document.createElement('img') img.src = 'https://source.unsplash.com/random/500x500' document.body.appendChild(img) }Por lo que entiendo, cada llamada de función depende entre sí, entonces, ¿por qué cada llamada de función en este ejemplo genera la misma imagen a pesar de que el enlace en sí debería generar un enlace aleatorio?
No generas un enlace aleatorio. Depende de source.unsplash.com para devolver una imagen aleatoria.
Pero dado que la página de su navegador ha visto esa URL, la carga desde el caché.
Puede agregar algo aleatorio, para que el navegador piense que es una URL diferente.
img.src = 'https://source.unsplash.com/random/500x500×tamp=' + Date.now()Simplemente puede agregar un interruptor de caché a su URL, ya que el navegador almacena en caché su solicitud y devuelve la misma imagen.
img.src = 'https://source.unsplash.com/random/500x500?t=' + new Date().getTime()Ver también: Actualizar imagen con una nueva en la misma URL