Как сделать так, чтобы динамик не потерял свою ось Y, когда я обновляю его во время панорамирования? - PullRequest
1 голос
/ 02 марта 2012

Это может быть немного неясно, но я разрабатываю приложение для просмотра, которое разбивает большой массив данных на части, а затем позволяет просматривать его с помощью графов, где новые куски данных загружаются с обеих сторон при перемещении по нему. 1001 *

Проблема в том, что когда вы обновляете график во время панорамирования, он, похоже, теряет свой диапазон по оси Y. Вы можете увидеть это на демо динамического обновления на официальном сайте:

http://dygraphs.com/tests/dynamic-update.html

Если вы переместите перетаскивание на панорамирование, вы увидите, что график (и ось Y) исчезают при добавлении новых данных. Чтобы доказать ошибку, запустите ее в консоли Chrome, и вы увидите вывод [NaN, NaN], когда график исчезнет:

window.setInterval(function() { console.log(window.g.yAxisRange()); }, 200);

Теперь существуют различные обходные пути с использованием таймеров, но в конечном итоге это похоже на ошибку в самой библиотеке dygraphs. Есть ли простой способ исправления в исправлении? В качестве альтернативы, если есть способ узнать, когда выполняется панорамирование, я мог бы просто избежать изменения набора данных, пока не узнаю, что пользователь не находится в середине панорамирования, но для этого нет официального обратного вызова или флага, и это похоже, что внутренний флаг isPanning был тщательно спрятан в объекте контекста локальной области, где он безопасен для моих посторонних глаз.

Какой самый быстрый способ исправить или обезьянить-исправить эту проблему?

1 Ответ

1 голос
/ 04 марта 2012

Это была ошибка в графиках, которая теперь исправлена.Если вы загрузите последнюю версию (с github или dygraphs.com), у вас больше не будет этой проблемы.

Если вы хотите узнать подробности, вот исправление: https://github.com/danvk/dygraphs/commit/97583b90be3e80c95654d010db8a4b3f8813bb7a

Код панорамирования хранит данные в объектах, которые ему не принадлежат, и когда вызывается updateOptions(), эти объекты уничтожаются и наступает хаос.

...