2016-08-25 2 views
0

Так что по какой-то причине я должен поместить крошечную диаграмму в ячейку столбца. Я сделал это с простой ДИВ и initizialized каждой диаграммы:ChartJS в производительности Datatable cell

<div> 
    <canvas id="6" height="50px" width="150px"></canvas> 
</div> 

jsFiddle

, который работает отлично подходит для 10 набора данных или 20. Но я получил огромное DataTable с 380 строк и после «2 минуты» ожидая, что он даже загрузит диаграммы для каждой отдельной строки таблицы. Есть ли лучший способ сделать это, или повысить производительность?

+0

_Не нужно загружать то, что не видно_: для диаграмм, возможно, инициализируется только то, что находится в области просмотра? –

+0

Ну, у меня есть одна вариация этого сейчас. Он загружает диаграммы только для первой страницы. Но если я перейду ко второму, диаграммы будут загружены, очевидно. Есть ли способ, с помощью которого я могу указать данные для вызова функции на смену страницы? – AHahn

+0

Я вижу, что вы уже разобрались в решении самостоятельно! :) –

ответ

0

Я нашел решение. Как упоминалось в этом посте: Pagination triggers Я вызываю функцию, которая вписывается в видимые диаграммы на нулевой чертеж. Значит, я только рисую их, когда их просматривают. Отличная производительность и супертонкое решение.

$('#Table') 
      .on('draw.dt', function() { initSparkline(); }) 
      .dataTable(); 

});