jQuery генерирует уникальный идентификатор из элемента (или объекта) - PullRequest
0 голосов
/ 01 августа 2011

Я хотел бы знать, как правильно создать строку уникального идентификатора из объекта, скажем, div, например. Должно быть

  1. Уникальный - ну, что-то вроде до 1.4 jQuery.data (элемент), но в котором используется кеш, верно?
  2. Стабильный - остается таким же после обновления и т. Д., Поэтому не основывается на дате / времени или кэше.
  3. Генерировать из содержимого элемента. Например, дублирование этого элемента должно в основном давать один и тот же идентификатор.
  4. Строка.

Обычных базовых способов генерирования идентификатора по умолчанию, например, приращений, массивов, здесь недостаточно. Пожалуйста, поделитесь своей мудростью.

Заранее спасибо.

РЕДАКТИРОВАТЬ: Не для ID атрибута элемента пожалуйста.

Ответы [ 2 ]

0 голосов
/ 01 августа 2011

Вы можете получить содержимое элемента (включая сам элемент) со строкой, а затем реализовать что-то вроде метода String.hashCode (), как это реализовано в java jdk.

Хеш-код для объекта String вычисляется как

 s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]

с использованием int арифметики, где s [i] - это i-й символ строки, n - длина строки, а ^ обозначает возведение в степень. (Значение хеша пустой строки равно нулю.)

В зависимости от вашей реализации / задачи / использования, может быть предпочтительнее реализовать эту функцию на стороне сервера, хотя

0 голосов
/ 01 августа 2011

Так что вам нужна функция хеширования js Не совсем в моей области, но я слышал, что MurmurHash достаточно быстрый (я думаю, что обычные подозреваемые, такие как MD5 или SHA1, будут замедляться для js) и имеют реализацию js.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...