Créer un Guid en JavaScript
Dans certains cas on aimerait bien obtenir un numéro unique (un guid) coté client donc en JavaScript.
Malheureusement le type Guid n'est pas définit par Microsoft Ajax et encore moins par JavaScript. J'ai donc réécrit le type .net System.Guid en utilisant la syntaxe Microsoft Ajax Library. Vous pouvez retrouver cette implémentation sur JavaScriptFR : Implémentation du type Syste.Guid avec Microsoft Ajax
Ce type possède les mêmes méthodes que le type System.Guid : voir la documentation de la msdn. La fonction la plus interéssante du type est bien évidemment la méthode newGuid() qui génére un nouveau Guid :
CS.Guid.newGuid = function(){
var d = new Date();
var end = d.getTime().toString();
for(var i = end.length; i < 32; i++){
end += Math.floor(Math.random()*16).toString(16);
}
return new CS.Guid(end);
}
Comme vous vous en rendez compte, on peut facilement récupérer la date à laquelle le Guid a été généré et il n'est pas forcément unique si 2 PC exécutent en même temps la même fonction et obtiennent la même combinaison de Math.random() ce qui ne doit pas être très fréquent.
A cause de ces petits problèmes et surtout parce qu'il ne faut JAMAIS faire confiance au client je vous conseille d'utiliser ce type le moins souvent possible et de générer un vrai Guid à partir de .net lorsque c'est possible.
Si quelqu'un a une solution qui garanti encore plus l'unicité d'un Guid généré à partir de JavaScript et sans utiliser d'ActiveX je suis preneur.