Я пытаюсь создать веб-приложение для компонента диаграммы данных, используя Envision.js. Используемые данные представляют собой тикер цен на акции в формате JSON. Я сформировал стандартную финансовую линейную диаграмму (шаблон Envision Finance), используя вызов ajax jquery для получения данных тикера и применения данных по оси X-Y.
Но требуется создать диаграмму в реальном времени, которая будет автоматически обновляться с течением времени данными о запасах со всеми деталями дочерней диаграммы. Ниже приведен код приложения для биржевой диаграммы:
(function ajax_demo (container) {
// Get initial data
$.getJSON('static/stockTicker.json', function (initialData) {
var
currentData = initialData,
options, finance;
options = {
container : container,
data : {
price : currentData.price,
volume : currentData.volume,
summary : currentData.summary
},
trackFormatter : function (o) {
var
index = o.index,
value;
value = currentData.data[index].date + ': $' + currentData.price[index][1] + ", Vol: " + currentData.volume[index][1];
return value;
},
// An initial selection
selection : {
data : {
x : {
min : 0,
max : 250
}
}
},
// Override some defaults.
// Skip preprocessing to use flotr-formatted data.
defaults : {
volume : {
skipPreprocess : true
},
price : {
skipPreprocess : true
},
summary : {
skipPreprocess : true,
config : {
xaxis : {
// Set x ticks manually with defaults override:
ticks : currentData.summaryTicks
}
}
}
}
};
// Set the selection callback:
options.selectionCallback = (function () {
var data = {
initial : initialData,
fetched : null
};
// Helper for fetching high resolution data
function fetchData (o) {
$.getJSON('static/stockSample.json', function (fetchedData) {
data.fetched = fetchedData;
currentData = fetchedData;
finance.price.options.data = data.fetched.price;
finance.volume.options.data = data.fetched.volume;
_.each(finance.selection.followers, function (follower) {
follower.trigger('zoom', o);
}, this);
});
}
// Selection callback:
return function (selection) {
if (finance) {
var
x = selection.data.x;
if (x.max !== null && Math.abs(x.max - x.min) < 250) {
if (data.fetched) {
// Use high resolution data, if available
finance.price.options.data = data.fetched.price;
finance.volume.options.data = data.fetched.volume;
currentData = data.fetched;
} else {
// Fetch high resolution data
fetchData(selection);
}
} else {
// Use low resolution data
finance.price.options.data = data.initial.price;
finance.volume.options.data = data.initial.volume;
currentData = data.initial;
}
}
}
})();
finance = new envision.templates.Finance(options);
});
}
)(document.getElementById("Demo"));
Я не смог найти ни одного примера, где мы могли бы интегрировать биржевую диаграмму в Envision.js с динамическими данными о ценах на акции, обновляемыми в определенное время. Должен ли я использовать Spring MVC или обычный сервлет, чтобы заставить его работать?
Пожалуйста помоги!