Dotyczy to tego pytania . Używam poniższego kodu z tej odpowiedzi do generowania UUID w JavaScript:
'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
return v.toString(16);
});
Wydawało się, że to rozwiązanie działa dobrze, ale pojawiają się kolizje. Oto co mam:
- Aplikacja internetowa działająca w Google Chrome.
- 16 użytkowników.
- około 4000 UUID zostało wygenerowanych w ciągu ostatnich 2 miesięcy przez tych użytkowników.
- Mam około 20 kolizji - np. Nowy UUID wygenerowany dzisiaj był taki sam jak około 2 miesiące temu (inny użytkownik).
Co powoduje ten problem i jak mogę go uniknąć?