Closed chestozo closed 9 years ago
Что-то типа такого?
var tmp = {};
this.models.forEach(function(m){tmp[m.key()]=true});
for (var i = 0; i < models.length; i++) {
model = models[i];
if (model && !tmp(model.key())) {
insertion.push(model);
tmp[model.key()] = true;
}
}
Можно и так попробовать, да.
Только мне кажется этот объект надо прямо хранить постоянно и синхронизировать с this.models
.
У нас тут есть коллекция одна, там 460 000+ элементов. И на ней сильно тормозит интерфейс.
Написал пример для исследований:
Попрафайлил:
Тормозит
insert
, кажется, из-за этого:Перед тем, как вставить модель мы ищём её (инстанс) сразу по 2 массивам.
Варианты оптимизаций, которые я вижу: 1) для
this.models
хранить какой-то индекс с ключами моделей и искать по ключу (а не по инстансу) 2) для пущей оптимизации можно ввести понятие хэша от ключа и искать по нему. К примеру,model=photo&author-login=ivan&image-id=77
->ivan:77
.