Создание веб-компонента для построения диаграмм данных с использованием Envision.js с данными канала котировок акций

Я пытаюсь создать веб-приложение для компонента диаграммы данных, используя 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 или обычный сервлет, чтобы заставить его работать?

Пожалуйста помоги!


person maali    schedule 04.03.2014    source источник


Ответы (1)


Вы можете использовать функцию «Обновлять через определенный интервал времени».

person Spidi's Web    schedule 18.10.2014