2015-07-03 4 views
2

У меня есть приложение, в котором я должен нарисовать много маленьких диаграмм nvd3 внутри таблицы jqgrid в моем угловом приложении. Я компилирую диаграммы с компиляцией. Тем не менее, я замечаю, что производительность растет медленнее по мере увеличения количества данных (для рисования 1 маленькой диаграммы требуется довольно быстро, но ждать, пока все это займет очень много времени)Производительность nvd3 для большого количества данных

Я заметил, что это известная проблема, основанная на этом post, поскольку это DOM-манипуляция. Я попробовал несколько трюков, например, скомпилировать диаграммы и т. Д., Но он все еще чувствует себя так медленно. Известно ли обходное решение этой проблемы?

+1

В общем, использование холста вместо SVG даст вам улучшение производительности. На самом деле это не вариант NVD3, хотя использование SVG жестко связано с библиотекой. Так что короткий ответ - нет. –

ответ

0

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

Проблема заключается в следующем: Я сделал каждую диаграмму nvd3 как маленький многоразовый компонент как угловую директиву, и в результате мне нужно вызвать $ compile, когда я рисую его внутри jqgrid.

$ compile на самом деле не самый быстрый способ, поэтому удаление $ compile call и использование <svg></svg> непосредственно в jqgrid решает мою проблему.

Итак, если у вас есть проблема с производительностью, и вы вызываете $ compile, возможно, первое, что нужно сделать, это удалить этот вызов компиляции $. Я довольно новичок в Angular, поэтому надеюсь, что это поможет другим, которые имеют такую ​​же проблему.

+0

Привет, blenzcoffee, я испытываю те же проблемы, используя библиотеку nvd3. Я действительно новичок в угловых и d3, поэтому я хотел бы попросить вас получить более подробную информацию, если это возможно, в вашем решении. Я пытаюсь загрузить файл около 80.000 строк, но его слишком медленно. Любая помощь очень приветствуется. –

Смежные вопросы