Necesito generar números de identificación únicos sobre la marcha usando javascript. En el pasado, hice esto creando un número usando el tiempo. El número estaría compuesto por el año de cuatro dígitos, el mes de dos dígitos, el día de dos dígitos, la hora de dos dígitos, el minuto de dos dígitos, el segundo de dos dígitos y el milisegundo de tres dígitos. Entonces se vería así: 20111104103912732... esto daría suficiente certeza de un número único para mis propósitos.
Ha pasado un tiempo desde que hice esto y ya no tengo el código. ¿Alguien tiene el código para hacer esto o tiene una mejor sugerencia para generar una identificación única?
Solución del problema
La forma más corta de crear un número del que puede estar bastante seguro de que será único entre tantas instancias separadas como pueda pensar es
Date.now() + Math.random()
Si hay una diferencia de 1 milisegundo en la llamada de función, se garantiza al 100 % que se generará un número diferente. Para las llamadas de función dentro del mismo milisegundo, solo debe comenzar a preocuparse si está creando más de unos pocos millones de números dentro de este mismo milisegundo, lo cual no es muy probable.
Para obtener más información sobre la probabilidad de obtener un número repetido en el mismo milisegundo, consulte https://stackoverflow.com/a/28220928/4617597
No hay comentarios:
Publicar un comentario