GUID(グローバル統一識別子)は、マシンで生成された数を指し、同じ空間と時間のすべてのマシンに固有のものであることを保証します。通常、プラットフォームはガイドを生成するためのAPIを提供します。生成アルゴリズムは、イーサネットカードアドレス、ナノ秒時間、チップIDコード、および多くの可能な数値を使用して、非常に興味深いものです。 GUIDの唯一の欠点は、生成された結果文字列が比較的大きくなることです。
The format of GUID is: xxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
GUIDはフロントエンドの開発ではあまり役に立たないことを誰もが知っていますが、IDを挿入する必要があり、このIDが背景などに対応する場合でも、利便性のためにGUIDを生成できます。
一般的に、SQL、Java、C#などのバックグラウンドやデータベース言語でGUIDを生成するのは非常に簡単ですが、フロントエンドにはGUIDを直接生成する方法がないため、自分でしか書くことができません。ただし、GUIDはイーサネットカードのアドレスとナノ秒単位での時間を取得する必要があるためです。フロントエンドからこの情報を取得することは困難です(子供の靴について知っている場合は教えてください)。実装をシミュレートしてGUIDを生成できます。コードは次のとおりです。
/ * *関数:GUIDコードを生成します。GUIDは、14日未満の時間と18匹を超える16進の乱数で構成されています。 GUIDには特定の繰り返し確率がありますが、繰り返し確率は非常に低いです。理論的には、繰り返し確率は10ミリ秒あたり1/(16^18)、つまり16のパワーに対する1であり、繰り返し確率は非常に低いため、無視できる*免責事項:このコードは著者学習専用です。ユーザーの使用プロセス中にコードの問題によって引き起こされる損失が著者とは何の関係もない場合*日付:2014年9月4日*著者:wyc*/ function guid(){this.date = new date(); /*初期化されたかどうかを判断します。次のコードが初期化されている場合、次のコードは実行されなくなり、実際には1回だけ実行されます*/ if(typeof this.newguid!= 'function'){/*Guid code*/ guid.prototype.newguid = function(){this.date = new date(); var guidstr = ''; sexadecimaldate = this.hexadecimal(this.getGuiddate()、16); sexadecimaltime = this.hexadecimal(this.getGuidtime()、16); for(var i = 0; i <9; i ++){guidstr+= math.floor(math.random()*16).toString(16); } guidstr += sexadecimaldate; GUIDSTR += sexAdecimalTime; while(guidstr.length <32){guidstr += math.floor(math.random()*16).toString(16); } this.formatguid(guidstr); } / * *関数:現在の日付のGUID形式、つまり8桁の番号の日付を取得します:19700101 * return value:GUID日付形式の形式の文字列をGUID日付形式 * / guid.getGuiddate = function(){return this.date.getTheer() this.addzero(this.date.getDay()); } / * *関数:現在のGUID形式、つまりミリ秒を含む8桁の時間、ミリ秒は2桁です。12300933 * return値 * / guid.prototype.getguidtime = function(){return this.ddzero.date.date() this.addzero(this.date.getMinutes()) + this.addzero(this.date.getSeconds()) + this.addzero(this.date.getSeconds()) + this.addzero(parseint(this.date.getmilliseconds() / 10)); } / * *関数:1桁の正の整数に0を追加します。非ナン数に変換できる文字列である場合、実装することもできます。パラメーター:パラメーターは、0の数を追加する準備ができているか、数字の値に変換できる文字列を指定します。 math.floor(num); } else {return num.toString(); }} /**関数:y-digit値をx-digit値に変換*パラメーター:最初のパラメーターは変換される値を表します。 2番目のパラメーターは、変換されるバイナリを表します。 3番目のパラメーターはオプションであり、現在のバイナリ番号を表します。10 * return値:変換された文字列 */ guid.prototype.hexadecimal = function(num、x、y){if(y!= undefined){return parseint(num.tostring()、y).tostring(x); } else {return parseint(num.toString())。toString(x); }} /**関数:GUIDモードの文字列への32ビット文字列*パラメーター:最初のパラメーターは32ビット文字列を表します*標準GUID形式の文字列* / guid.prototype.formatguid = function(guidstr){var str1 = guidstr.slice(0) + ' - ' - ' - ' - '、 str3 = guidstr.slice(12、16) + ' - '、str4 = guidstr.slice(16、20) + ' - '、str5 = guidstr.slice(20); STR1 + STR2 + STR3 + STR4 + STR5を返します。 }}}GUIDオブジェクト
JSファイルに保存して参照してください。
その後、必要です。
コードコピーは次のとおりです。
var guid = new Guid();
alert(guid.newguid());
GUIDコードを取得できます。
実装の原則は非常に簡単です。ここでは、システム時間と18以上の16進の乱数を使用して、システム時間を16進変換します。まだ繰り返すことは可能ですが、繰り返しの確率は非常に低く、無視できます。
上記は、私によって書かれたGUIDを生成する方法です。より良い方法があるなら、教えてください、ありがとう!