Детализация столбчатой ​​диаграммы с внешними данными, которые обновляются каждые 5 секунд - PullRequest
0 голосов
/ 09 июля 2020

Используя amCharts4, я создал гистограмму и без проблем загружал данные извне. Эти данные обновляются каждые 5 секунд. Я пытаюсь загрузить дополнительные данные, когда кто-то нажимает на одну из полос. Вот как представлены мои текущие данные:

    {
        "id":"5",
        "name": "Jacksonville, FL",
        "claims": 17,
        "sub": [
        
            {"id":1,"name": "John Smith", "claims":2},
            {"id":2,"name": "Jane Doe", "claims":4},
            {"id":3,"name": "John Doe", "claims":8},
            {"id":4,"name": "Jane Smith", "claims":3}
        ]
    }

Цель этого состоит в том, чтобы показать офисы и общую сумму требований. Затем, когда кто-то нажимает на ссылку, мы видим разбивку претензий. Вот код для перехода.

series.columns.template.events.on("hit", function(ev) {

  var linkData = ev.target.dataItem.dataContext;
  if (linkData.sub) {
    chart.data = linkData.sub;
  }
    
}, this);

Это работает в течение нескольких секунд, пока внешняя перезагрузка не перезагрузится из-за reloadFrequency. Потом выходит из строя довольно ужасно. Моим желаемым результатом было бы то, что при переходе по ссылке они увидели бы людей в реальном времени. Каждые 5 секунд он просто обновлял индивидуальные данные.

С другой стороны, я пробовал использовать другой способ, но этот, похоже, тоже не работает. Если бы я загружал эти внешние данные отдельно, он работал бы нормально, но когда я загружаю для замены внешних данных, по какой-то причине это не работает. Вот моя другая попытка:

series.columns.template.events.on("hit", function(ev) {

  var locationID = ev.target.dataItem.dataContext.id;
    chart.dataSource.url = "/admin/reports/ajax/locations-realtime-analysts.asp?locationID="+locationID;
    chart.dataSource.load();        
    
}, this);

Согласно документации, это должно сработать, потому что оно заменяет текущие данные новыми. Опять же, само по себе все работает нормально, но при попытке заменить одно другим - нет. Вот как выглядят внешние данные "аналитиков":

[
            
                {"id":1,"name": "John Smith", "claims":2},
                {"id":2,"name": "Jane Doe", "claims":4},
                {"id":3,"name": "John Doe", "claims":8},
                {"id":4,"name": "Jane Smith", "claims":3}
            ]

Ваша помощь очень признательна!

...