function iRead(item, options) {
....
this._events_read = [];
this._events_unread = [];
if(typeof(options) == "object" && typeof(options.on)== "object"){
if(typeof(options.on.read) == "function")
this._events_read.push(options.on.read);
if(typeof(options.on.unread) == "function")
this._events_unread.push(options.on.unread);
}
this.on = function(evt,func){
switch(evt){
case "newsRead":
this._events_read.push(func);
break;
case "newsUnread":
this._events_unread.push(func);
break;
}
}
}
[{date:дата,value:значение},{date:дата,value:значение},{date:дата,value:значение}....]
. Он сам найдет минимальное, максимальное и построит график. Работает быстро, с учетом того что генерирует этот массив, а потом проходит по нему, все происходит мгновенно по крайней мере для 30000 элементов.