A library to quickly create a massive list when things like knockout’s foreach are too slow. To see MassiveList in action, checkout my other project beatcabinet.
callahanrts/massive-list
While working on beatcabinet, I found that Knockout’s foreach was too sluggish adding songs to the queue. I did a quick performance test between Angular’s ng-repeat, Knockout’s foreach, jQuery, and plain javascript. I found that for simply adding rows to a list, plain javascript was by far the fastest. I created MassiveList as a plain javascript implementation for manipulating a really large (thousands) list of elements.
Example Usage:
// Initializing a massive list with no data
// MassiveList(id, [, options])
var list = MassiveList("element-id");
var element = {
id: "elementId",
className: "list of classes",
content: "<p>html content</p>",
events: {
click: function(){
console.log("click");
},
dblclick: function{
console.log("double click");
}
...
}
}
// Inserting a row to the end of the list
list.push(element [, tag])
// Inserting a row at the beginning of the list
list.unshift(element)
// Insert an array of rows into the list
list.push(array)
// Change the value at a single location
list.set(index, element)
// Get the value at a single location
var element = list.get(index)
// Popping last row
var element = list.pop()
// Sort list elements
list.sort(function(a, b){
// sort function
})
// splice(start, deleteCount[, item1[, item2[, ...]]])
// Remove existing and/or add elements
list.splice()