Доступ к незагруженным узлам DataTable с опцией DeferRender
Моя проблема в том, что у меня есть таблица данных, содержащая тысячи данных, и я столкнулся с проблемами производительности в Internet Explorer 11 (я не хочу <11, и у меня нет проблем с Firefox и Chrome). Для решения проблемы производительности я добавил deferRender: true
на мой dataTable, который был действительно успешным, но потом я столкнулся с другой проблемой, которую я еще не решил.
Новая проблема заключается в том, что в каждой строке моей таблицы есть флажок, а в заголовке данных есть флажок, который ставит / снимает флажки всех строк, когда по нему щелкают. Когда происходит щелчок, я извлекаю все узлы в своей таблице, выполняя var allNodes = myTable.rows().nodes()
и изменить checked
свойство каждой строки флажок.
Без deferRender
Я извлекал все узлы, но так как у меня была эта опция, которая выполняет отложенную загрузку, я получаю только загруженные узлы (первая страница и загруженные страницы).
Итак, мой вопрос: есть ли способ сохранить патч производительности IE с ленивой загрузкой? deferRender
вариант и по-прежнему иметь доступ ко всем узлам (может быть, через функцию, которую я еще не нашел) или есть другой способ улучшить производительность в IE?
Спасибо за помощь.
PS: При необходимости я добавляю свой код инициализации данных здесь:
$('#myTable').DataTable({
ajax: {
url: myUrl,
contentType: 'application/json',
type: 'POST',
data: function (d) {
return JSON.stringify(dataToSend);
}
},
columns: [
{
data: 'Identifier',
type: 'html',
sortable: false,
render: function (data, type, row) {
return '<input type="checkbox" name="checkboxRow" value="' + $('<div/>').text(data).html() + '">';
}
},
{
data: 'Mnemo',
render: function (data, type, row) {
return '<a class="hand-cursor">' + $('<div/>').text(data).html() + '</a>';
}
},
{ data: 'FamGam.Family' },
{ data: 'FamGam.Gamme' },
{
fnCreatedCell: function (nTd, oData, iRow, iCol) {
if (oData === 'En service') {
$(nTd).addClass('cell-text-green');
} else if (oData === 'En cours de démontage') {
$(nTd).addClass('cell-text-orange');
}
},
data: 'dataState.Libelle'
},
{ data: 'IdentifierUI' },
{ data: 'TechnicalRoom.InterventionUnitySenderSite' },
{ data: 'IdentifierTechnicalRoom' },
{
type: 'html',
sortable: false,
defaultContent: '<img class="imgBtn secondBtn" ' +
'src="' + urlImages + '/edit.png" ' +
'alt="Editer" title="Editer" />'
}
],
deferRender: true,
destroy: true,
searching: true,
retrieve: true,
order: [1, 'asc']
});