![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Как реализовать систему раздачи id как у функции SetInterval. Собственно это и есть вопрос. Хотелось бы чтобы номера выдавались динамически тоесть если уже есть номера 1 2 3 4, то после удаления 2 номера - функция снова бы выдавала 2 - Чтобы не возникало переполнения номеров со временем. Подскажите, пожалуйста.
Интересует аспект производительности, так как номеров будет около 2000 и всё время бегать циклом в поиске нужного номера будет затратным по ресурсам. Последний раз редактировалось Rzer; 01.01.2008 в 17:07. |
|
|||||
|
Регистрация: Apr 2004
Адрес: macromedia—adobe Любит: Flash MX
Сообщений: 2,860
|
по-моему, никак, а если писать такую функцию самому(которая бы делал переназначения), то она ещё больше грузить будет, чем перебор.
__________________
маска лошади и коня в россии и снг с бесплатной доставкой gimmethevape вейпы и поды доставка |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Цитата:
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
var idArr = new Array();
var emptyPlaces = new Array();
function register(obj) {
if(emptyPlaces.length > 0) {
var num = emptyPlaces.pop();
idArr[num] = obj;
return num;
} else {
idArr.push(obj);
return idArr.length - 1;
}
}
function unregister(id) {
idArr[id] = undefined;
emptyPlaces.push(id);
}
|
|
|||||
|
возьмите опыт из БД: пусть "2" было всего раз и больше никогда не будет, ничего страшного, переполнения все равно не достигните. Просто сделайте статическую переменную в классе, которая в конструкторе будет инкрементиться - это и будет Вашим ИД. Если важна производительность, то это Ваш выход имхо.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 12:45. |
|
|
« Предыдущая тема | Следующая тема » |
|
|