Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Универсальный короткий id (https://javascript.ru/forum/offtopic/48001-universalnyjj-korotkijj-id.html)

dmitry111 15.06.2014 23:56

[quote=nerv_;316696]а я 5400 насчитал :)

да, на ходу писал, забыл на три умножить)

dmitry111 15.06.2014 23:59

да, Date.now() - то что нужно!

dmitry111 16.06.2014 00:07

Poznakomlus,

за 3 cекунды эта функция будет возвращать id с индексом более 5000! Нужно либо обнулять, либо уменьшать.

Важны именно короткие id!

l-liava-l 16.06.2014 00:13

Цитата:

alert(Date.now() === Date.now());
ну эт смотря для какой задачи) (про пули не прочитал прост)

nerv_ 16.06.2014 00:13

Цитата:

Сообщение от dmitry111
за 3 cекунды эта функция будет возвращать id с индексом более 5000! Нужно либо обнулять, либо уменьшать.

а как ты хотел, если у тебя
Цитата:

Сообщение от dmitry111
5400

элементов может находится?

Vlasenko Fedor 16.06.2014 00:14

<script>
  function next() {
    var max = 9999,
      i = -1;
    return function () {
      i = i < max ? i + 1 : 0;
      return i;
    }
  }
  var new_id = next();
  alert(new_id());
  alert(new_id());
</script>

после 9999, отсчет с нуля начнется

dmitry111 16.06.2014 00:21

Цитата:

Сообщение от nerv_
1 alert(Date.now() === Date.now());

вот это вот как-то озадачило)

По логике должен быть false!
Есть ли вероятность того, что будет true если использовать Date.now() не в прямом сравнении?

dmitry111 16.06.2014 00:26

Цитата:

Сообщение от Poznakomlus
после 9999, отсчет с нуля начнется

забыл почему меня этот вариант не устроил)

у меня по такому принципу игроки создаются, а пули почему-то так делать не захотел))





Вот почему:
Я просто не хочу привязывать данные к относительным величинам!
То есть игроков может быть 20, а может быть и 10, а может быть и 50))

Я даже для игроков не ограничивал лимит и выставлял первый свободный номер:

// подбирает gameID
  function getGameID() {
    var gameID = 0;

    while (this._users[gameID]) {
      gameID += 1;
    }

    return gameID;
  }


Тот вариант, который я изложил в начале (с base 36), меня тоже не устраивает, кстати!

Vlasenko Fedor 16.06.2014 00:39

Цитата:

Сообщение от dmitry111
Я просто не хочу привязывать данные к относительным величинам!

Пересмотри реализацию логики в этом случае. Или описывай детально, что где и как, вплоть до серверного обеспечения
php spl_object_hash

l-liava-l 16.06.2014 00:42

Цитата:





Вот почему:
Я просто не хочу привязывать данные к относительным величинам!
То есть игроков может быть 20, а может быть и 10, а может быть и 50))

Тот вариант, который я изложил в начале, меня тоже не устраивает, кстати!
Почему ты просто не создашь переменную равную 0, и тупо не будешь ее постоянно инкрементировать каждый раз присваивая пуле id
так всех зайцев убьешь, и на тебе плюхи от Date.now() и нет проблемы с сравнением и в конце можно пули выстрелленые посчитать и тд

Цитата:

var max = 9999,
нафига какое то ограничение? закончилась сессия обнулил, и усе


Часовой пояс GMT +3, время: 18:26.