GUID (Глобальный унифицированный идентификатор) относится к числу, генерируемому на машине, что гарантирует, что он уникален для всех машин в одном и том же пространстве и времени. Обычно платформа предоставляет API для генерации ГПИД. Алгоритм генерации очень интересен, используя адрес карты Ethernet, наносекундное время, идентификационный код чипа и множество возможных чисел. Единственным недостатком GUID является то, что сгенерированная строка результатов будет относительно большой.
Формат GUID: xxxxxx-xxxx-xxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX
Все знают, что GUID не очень полезен в фронтальной разработке, но если вам нужно вставить идентификатор, и этот идентификатор соответствует фону и т. Д., Мы все равно можем генерировать GUID для удобства.
Как правило, очень просто сгенерировать гииды на фоне или языках базы данных, таких как SQL, Java, C#и т. Д., Но на переднем конце нет метода для непосредственного создания ГПВ, так что вы можете написать только один самостоятельно. Однако, поскольку GUID необходимо для получения адреса карты Ethernet и времени в наносекундах. Трудно получить эту информацию с передней части (пожалуйста, скажите мне, если вы знаете о детской обуви), и мы можем имитировать реализацию и генерировать GUID, код выглядит следующим образом:
/ * * Функция: генерируйте код GUID, где GUID состоит из менее чем 14 дат и времени и более 18 шестнадцатеричных случайных чисел. GUID имеет определенную вероятность повторения, но вероятность повторения чрезвычайно низкая. Теоретически, вероятность повторения составляет 1/(16^18) на 10 мс, то есть 1 к силе 16, а вероятность повторения настолько низкая, что он незначительна* Отказ от ответственности: этот код для обучения автора. Если убытки, вызванные проблемами кода во время процесса использования пользователя, не имеют ничего общего с автором* Дата: 4 сентября 2014 г.* Автор: wyc*/ function guid () {this.date = new Date (); /* Определите, был ли он инициализирован. Если следующий код инициализирован, следующий код больше не будет выполнен, и он будет выполнен только один раз в действительности*/ if (typeof this.newguid! = 'Function') {/*генерировать код GUID*/ 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 * Возвращение значения: вернуть строку формата даты GUID в формате даты GUID * / guid.prototype.getGuidDate = function () {return.date.getbleear () + this.addzer this.addzero (this.date.getday ()); } / * * Функция: Получить формат GUID текущего времени, то есть время 8 цифр, включая миллисекунды, а миллисекунды - 2 цифры: 12300933 * Возвращение значения: вернуть строку формата даты GUID * / guid.prototype.getGuidtime = funct this.addzero (this.date.getminutes ()) + this.addzero (this.date.getSeconds ()) + this.addzero (this.date.getSeconds ()) + this.addzero (parseint (this.date.getmilliseconds () / 10)); } / * * Функция: добавить 0 в положительное целое число одной цифры. Если это строка, которая может быть преобразована в номер не на NAN, она также может быть реализована. Параметры: параметры указывают на то, что число 0 готово для добавления до или строки, которая может быть преобразована в число* возвращаемое значение: если условие соответствует условиям, возвращайте тип строки после добавления 0, в противном случае он вернет свою собственную строку*/ guid.prototype.addzero = function (num) {if (num num) .tostring ()! 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); } else {return parseint (num.toString ()). ToString (x); }} /** Функция: Формат 32-битные строки к строкам в режиме GUID* Параметры: Первый параметр представляет 32-битные строки* возвращаемое значение: строка в стандартном формате GUID* / GUID.Prototype.formatGuid = function (guidstr) {var str1 = guidstr.slice (0, 8) + '-', str2 = gudstr.slice (8) + '- 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 шестнадцатеричных случайных чисел и преобразуем системное время в шестнадцатеричную. Хотя это все еще можно повторить, вероятность повторения чрезвычайно низкая и может быть проигнорирована.
Выше приведено метод генерации GUID, написанного мной. Если есть лучший метод, скажите, пожалуйста, спасибо!