forked from 0x2620/oxjs
reducing textlist item construction time by about 80%
This commit is contained in:
parent
ca905a54bb
commit
4eef6ece64
3 changed files with 17 additions and 6 deletions
|
|
@ -649,10 +649,11 @@ Ox.List = function(options, self) {
|
|||
}
|
||||
|
||||
function loadItems() {
|
||||
Ox.print('start loadItems')
|
||||
that.$content.empty();
|
||||
self.options.items.forEach(function(item, pos) {
|
||||
// fixme: duplicated
|
||||
self.$items[pos] = new Ox.ListItem({
|
||||
self.$items[pos] = Ox.ListItem({
|
||||
construct: self.options.construct,
|
||||
data: item,
|
||||
draggable: self.options.draggable,
|
||||
|
|
@ -663,6 +664,7 @@ Ox.List = function(options, self) {
|
|||
self.$items[pos].appendTo(that.$content);
|
||||
});
|
||||
self.selected.length && scrollToPosition(self.selected[0]);
|
||||
Ox.print('stop loadItems')
|
||||
}
|
||||
|
||||
function getPageLength(page) {
|
||||
|
|
@ -1232,7 +1234,6 @@ Ox.List = function(options, self) {
|
|||
}
|
||||
|
||||
function updateSort() {
|
||||
Ox.print('start sort')
|
||||
var key = self.options.sort[0].key,
|
||||
map = self.options.sort[0].map,
|
||||
operator = self.options.sort[0].operator,
|
||||
|
|
@ -1244,6 +1245,7 @@ Ox.List = function(options, self) {
|
|||
self.options.items.forEach(function(item) {
|
||||
sort[item.id] = map ? map(item[key]) : item[key];
|
||||
});
|
||||
Ox.print('start sort')
|
||||
self.options.items.sort(function(a, b) {
|
||||
var aValue = sort[a.id],
|
||||
bValue = sort[b.id],
|
||||
|
|
@ -1255,6 +1257,7 @@ Ox.List = function(options, self) {
|
|||
}
|
||||
return ret;
|
||||
});
|
||||
Ox.print('end sort')
|
||||
if (selectedIds.length) {
|
||||
self.selected = [];
|
||||
self.options.items.forEach(function(item, i) {
|
||||
|
|
@ -1269,7 +1272,6 @@ Ox.List = function(options, self) {
|
|||
getPositions();
|
||||
}
|
||||
}
|
||||
Ox.print('end sort')
|
||||
}
|
||||
|
||||
self.setOption = function(key, value) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue