Подтвердить что ты не робот

Готовый JavaScript для визуализации больших наборов данных?

У нас есть некоторые данные (10-50 столбцов, сотни тысяч строк), которые мы обычно визуализируем в Excel в виде линейного графика или гистограммы. Пользователи хотят иметь возможность масштабирования и вывода из графика, чтобы перейти к отдельным образцам, но эти операции действительно приносят Excel на колени.

Я думаю о встраивании данных в HTML-страницу с встроенным JavaScript для обработки визуализации в браузере. Что-то вроде flotr JS charting lib будет использоваться для диаграмм.

  • Это глупая идея?
  • Готов ли браузер к такой загрузке?
  • Является ли это решаемой проблемой, с которой мне просто нужно было разобраться более тщательно, прежде чем спрашивать?
4b9b3361

Ответ 1

Javascript, вероятно, готов к этому, поскольку сам javascript стал довольно быстрым. По моему опыту, браузеры, как правило, не готовы обрабатывать очень большие структуры DOM. По крайней мере, вы можете ожидать много времени, пытаясь выяснить, почему все идет медленно. Вы также обнаружите, что многие "стандартные" javascript-библиотеки (прототип/jquery приходят на ум) не подходят для работы с "чрезмерно большими" структурами DOM.

Будьте готовы узнать, что данная операция выполняется медленно во всех браузерах, но в конце концов она оказывается по 3-4 причинам в разных браузерах. Это основано на опыте работы со среднеразмерными DOM. Хотя, безусловно, это может стоить немалого труда, чтобы получить достойный результат.

Ответ 2

Я настоятельно рекомендую Adam предложить некоторые бенчмаркинга и оптимизации. Недавно я проделал определенную работу по построению больших наборов данных с помощью Flot и испытал менее приемлемую производительность с помощью Internet Explorer (например, весь браузер, висящий на ~ 20 секунд в моем блоке разработчиков при построении графиков).

Флот использует элемент canvas для построения диаграмм, который поддерживается только в Internet Explorer 9+. Флот обеспечивает поддержку более старых версий Internet Explorer с помощью библиотеки ExplorerCanvas. Эта библиотека использует VML, рисует графику, манипулируя элементами VML через DOM.

Используя обозреватель Internet Explorer 8 script, я обнаружил большую часть времени, проведенного с тем, что сюжет был потрачен, называя родной insertAdjacentHTML method для создания элементов VML. Поскольку не было ничего, что можно было бы сделать для повышения производительности вызовов для собственных методов, я вместо этого работал над уменьшением числа построенных точек данных (в свою очередь, сокращения элементов VML, созданных в DOM), чтобы получить приемлемую производительность.

Если вам не нужна или нужна поддержка более старых версий Internet Explorer, когда вы должны найти, что Flot/Flotr вполне способен обрабатывать большие наборы данных. Но если вам нужно поддерживать эти версии, вы должны столкнуться с проблемами производительности при составлении диаграмм больших наборов данных.

Ответ 3

Готово ли Javascript для визуализации больших наборов данных?

Да - это язык, в котором он легко, в правильной среде, обрабатывает значительные наборы записей и манипулирует, визуализирует и т.д. Сам язык в порядке.

Это глупая идея?

Нет, на самом деле вы можете рассчитывать почти на каждый компьютер, чтобы иметь возможность запускать этот способ с перекрестной платформой.

Готов ли браузер к такой загрузке?

Некоторые могут быть - зависит от того, какую обработку и действия вы фактически принимаете. С Chrome, использующим быстрый механизм JavaScript, и все больше и больше людей в значительной степени полагаются на него, запускается война со скоростью javascript. Я думаю, что это вполне допустимый сценарий использования.

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

-Adam