GUID (Global Unified Identifier)는 기계에서 생성 된 숫자를 나타냅니다.이 숫자는 동일한 공간과 시간에 모든 기계에 고유한지 확인합니다. 일반적으로 플랫폼은 GUID를 생성하기위한 API를 제공합니다. 생성 알고리즘은 이더넷 카드 주소, 나노초 시간, 칩 ID 코드 및 가능한 많은 숫자를 사용하여 매우 흥미 롭습니다. GUID의 유일한 단점은 생성 된 결과 문자열이 비교적 크다는 것입니다.
GUID의 형식은 다음과 같습니다. XXXXXX-XXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 나타 녹입니다
모든 사람은 Guid가 프론트 엔드 개발에 그다지 유용하지 않다는 것을 알고 있지만 ID를 삽입해야 하며이 ID가 배경 등에 해당하는 경우 편의를 위해 Guid를 생성 할 수 있습니다.
SQL, Java, C#등과 같은 백그라운드 또는 데이터베이스 언어에서 안내서를 생성하는 것은 일반적으로 매우 간단하지만 프론트 엔드에는 직접 안내서를 생성하는 방법이 없으므로 직접 작성할 수 있습니다. 그러나 안내서는 이더넷 카드의 주소와 나노초로 시간을 얻어야하기 때문입니다. 프론트 엔드 에서이 정보를 얻기가 어렵습니다 (어린이 신발에 대해 알고 있는지 알려주세요). 구현을 시뮬레이션하고 안내를 생성 할 수 있습니다. 코드는 다음과 같습니다.
/*
* 기능 : GUID가 14 일 미만의 날짜와 시간과 18 개의 16 진수 랜덤 숫자로 구성되는 GUID 코드를 생성합니다. Guid는 특정 반복 확률을 가지고 있지만 반복 확률은 매우 낮습니다. 이론적으로 반복 확률은 10ms 당 1/(16^18), 즉 16의 전력에 1 부분이며, 반복 확률은 무시할만한 것만 큼 낮습니다*/
함수 guid () {this.date = new date ();/* 초기화되었는지 여부를 결정합니다. 다음 코드가 초기화되면 다음 코드가 더 이상 실행되지 않습니다. 실제로, 그것은 한 번만 실행됩니다*/if (type. this.newguid! = 'function') {/*Guid Code 생성*/guid.prototype.newguid = function () {this.date = new date (); var guidstr = ''; sexAdecimaldate = this.HexAdeCimal (this.getGuidDate (), 16); 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) {guidstrs += math.floor (math.random ()*16) .ToString (16);} return this.formatguid (guidstr);}/** 함수 : 현재 날짜의 Guid 형식을 가져옵니다. function () {return this.date.get.getlyear () + this.addzero (this.date.getmonth () + 1) + this.addzero (this.date.getday ());}/** 함수 : 현재 시간의 지침 형식, 즉 밀리 초 시간을 포함하여 8 자리 시간을 가져 오십시오. format*/guid.prototype.getguidtime = function () {return this.addzero (this.date.gethours ()) + th리 기능 : 단일 자리의 양의 정수에 0을 추가하십시오. 비 NAN 번호로 변환 할 수있는 문자열 인 경우 구현할 수도 있습니다. 매개 변수 : 매개 변수는 이전에 추가 할 준비가 된 숫자 또는 숫자* 반환 값으로 변환 할 수있는 문자열을 나타냅니다.* 반환 값 : 조건이 충족되면 0을 추가 한 후 문자열 유형을 반환합니다. 그렇지 않으면 자체 문자열*/guid.prototype.addzero = function (nume (num) .toString () ' + num <10) {10) {10) {10) {10) math.floor (num);} else {return num.tostring ();}}/** 함수 : y 자지 값을 x 자리 값으로 변환* 매개 변수 : 첫 번째 매개 변수는 변환 할 값을 나타냅니다. 두 번째 파라미터는 변환 될 입자를 나타냅니다. 세 번째 매개 변수는 현재 입자 번호를 나타내는 선택적이며, 쓰여지지 않은 경우 10* 반환 값 : 반환 된 문자열*/guid.prototype.hexadecimal = function (num, x, y) {if (y! = undefined) {return parseint (num.tostring (), y) .toString (x); parseint (num.toString ()). toString (x);}}}/** 함수 : 32 비트 문자열을 안내 모드의 문자열로 형식화하십시오. Guidstr.slice (8, 12) + '-', str3 = Guidstr.Slice (12, 16) + '-', str4 = str4 = guidstr.slice (16, 20) + '-', str5 = guidstr.slice (20); return str1 + str2 + str3 + str4 + str5;}}}}}안내 대상
JS 파일에 저장하고 참조하십시오.
그러면 우리는 그냥 필요합니다
var guid = 새로운 Guid ();
Alert (Guid.NewGuid ());
안내 코드를 얻을 수 있습니다.
구현 원리는 매우 간단합니다. 여기서 우리는 단지 시스템 시간과 18 개의 16 진수 랜덤 숫자를 사용하고 시스템 시간을 16 진수로 변환합니다. 여전히 반복하는 것이 가능하지만 반복 확률은 매우 낮으며 무시할 수 있습니다.