Menghasilkan Gambar Acak yang Berbeda Setiap Kali Panggilan

Menghasilkan Gambar Acak yang Berbeda Setiap Kali Panggilan

Pernahkah Anda ingin menghasilkan gambar acak yang berbeda setiap kali panggilan, bahkan jika Anda memanggil gambar acak 10 kali pada sebuah halaman web? Apakah ada cara untuk membuatnya terjadi?

Menurut isu GitHub, Anda dapat menggunakan https://source.unsplash.com/random/200×200?sig=incrementingIdentifier.

<img src="https://source.unsplash.com/random/200x200?sig=1" />
<img src="https://source.unsplash.com/random/200x200?sig=2" />
<img src="https://source.unsplash.com/random/200x200?sig=3" />

Mereka secara aktif menyelesaikan masalah umum ini dalam dokumentasi mereka. Menariknya, Anda menggunakan rekomendasi mereka untuk mencapai hasil yang sebaliknya:

Gambar Random Static
Dapatkan gambar acak yang sama setiap kali berdasarkan benih, dengan menambahkan /seed/{seed} ke awal URL.

https://picsum.photos/seed/picsum/200/300

Solusi

Menurut Picsum, Anda dapat melakukannya:

  1. Meminta beberapa gambar dengan ukuran yang sama pada browser, tambahkan query param acak untuk mencegah gambar dari di-cache:
<img src="https://picsum.photos/200/300?random=1">
<img src="https://picsum.photos/200/300?random=2">
  1. Anda juga dapat memperoleh daftar URL menggunakan API mereka, yang memungkinkan Anda untuk mendefinisikan jumlah gambar dan beberapa hal lainnya. Saya sarankan Anda untuk membaca panduan kecil yang mereka buat di situs web mereka.

API yang Simpel
Itu akan mengarahkan Anda ke gambar acak yang berbeda setiap kali panggilan.

URL: https://source.unsplash.com/random/300×200

Sintaks: https://source.unsplash.com/random/x

Trik JavaScript untuk Mendapatkan Gambar yang Unik

https://source.unsplash.com/random/300x200?sig=${Math.random()}

Dengan cara ini, Anda dapat memperoleh gambar acak yang berbeda setiap kali panggilan.

Penyebab Gambar Acak Sama
Itu disebabkan oleh caching browser karena Anda secara efektif meminta gambar yang sama. Hal ini dapat dilihat dalam tangkapan layar dari browser saya,

<img src="https://picsum.photos/200/300">
<img src="https://picsum.photos/200/300">

1 Server request,

Solusi lain
Anda perlu menambahkan unsur acak ke URL, tergantung pada bahasa yang Anda gunakan.

Contoh dalam PHP:

<img src="https://picsum.photos/200/300?nocache=<?php echo microtime(); ?>" >
<img src="https://picsum.photos/200/300?nocache=<?php echo microtime(); ?>">>

Dalam kasus ini, saya telah menambahkan fungsi microtime() untuk mendapatkan benih yang berbeda setiap kali panggilan.

Saya sekarang mendapatkan dua request dan dua gambar,

Cara lain
Anda perlu mengacak angka dalam URL Anda;
URL: https://picsum.photos/200/300?random=1

Dokument.getElementById('imgShow').src = 'https://picsum.photos/'+(200+rand())+'/' + (300 + rand()) +'?random=1';

function rand(){ return Math.floor(Math.random() * 90)} ;

Saya telah menambahkan fungsi rand() untuk mendapatkan angka acak yang berbeda setiap kali panggilan.

Penggunaan Seeder/Faktori di Laravel (PHP)
Anda dapat menggunakan sesuatu seperti:

'url' => 'https://picsum.photos/1024/1024?nocache='.microtime()

Saya harap informasi ini membantu Anda dalam mencapai tujuan Anda.

Leave a comment