2017-02-20 7 views
0

Я хотел бы переупорядочить порядок таблиц один раз в секунду. Но ... я понятия не имею. Настройки по умолчанию следующие.Я хочу перезагрузить данные таблицы каждые 1 секунду с помощью DataTables

$(document).ready(function() { 
    $('#dataTables-example').DataTable({ 
     responsive: true, 
      "paging": false, 
      "info":  false, 
      "searching" : false, 
      "order": [[ 1, "desc" ]] 
    }); 
}); 

В этом состоянии, как я могу просто изменить порядок таблицы так, что он продолжает периодически заказан? Значения в таблице обрабатываются другим JavaScript. Вот почему я просто хочу переупорядочить каждую секунду в том же методе.

Итак, я сделал так. но это не работает.

$(document).ready(function() { 
    var refreshTable = $('#dataTables-example').DataTable({ 
     responsive: true, 
      "paging": false, 
      "info":  false, 
      "searching" : false, 
      "order": [[ 1, "desc" ]] 
    }); 
    setInterval(refreshTable , 1000);}); 

Вы знаете, как исправить это?

ответ

1

Так что вы хотите, чтобы перерисовывать таблицу каждый второй ... (ты уверен, что это довольно интенсивное использование - гораздо лучше, чтобы перерисовать только при изменении данных? ... Но это еще пост ...)

Ты почти там - просто отсутствует simple little API call:

$(document).ready(function() { 
    var myTable = $('#dataTables-example').DataTable({ 
     responsive: true, 
      "paging": false, 
      "info":  false, 
      "searching" : false, 
      "order": [[ 1, "desc" ]] 
    }); 
    setInterval(function() { 
     myTable.rows().invalidate().draw(); 
    }, 1000); 
}); 

ОБНОВЛЕНИЕ

В зависимости от того, кто изменяет ваши данные и как, возможно, вам придется аннулировать кеш dataTable перед повторной переделкой; Я обновил фрагмент кода выше.

Обратите внимание, что если ваши другие сценарии изменения данных в таблице DOM напрямую, и вы загрузили данные через JSON, вы, возможно, придется заставить DataTables использовать DOM в качестве источника данных при аннулированию:

myTable.rows().invalidate('dom').draw(); 

(См. Документацию по адресу invalidate)

Надеюсь, это поможет!

+0

Прошу прощения ... не работает ... –

+0

Ошибка отсутствует ... но не упорядочена с новыми данными , –

+0

Итак, вы меняете данные таблицы? Что, собственно, делают эти другие скрипты? – MacPrawn

0

Пожалуйста, проверьте это:

$(document).ready(function() { 
function refreshTable() { 
    $('#dataTables-example').DataTable({ 
    responsive: true, 
     "paging": false, 
     "info":  false, 
     "searching" : false, 
     "order": [[ 1, "desc" ]] 
});} 
setInterval(refreshTable , 1000);}); 
+0

Привет ~~~ Спасибо за ваши усилия ... но ошибка ниже. «Предупреждение DataTables: таблица id = dataTables-example - Не удается повторно инициализировать dataTable. Дополнительные сведения об этой ошибке см. По адресу http: //datatables.ent/tn/3« –

+0

Я не знал, что у вас проблемы с 'DataTable'. Я думаю, проблема заключается в повторении процесса и упоминается истинный способ использования 'setInterval'. Если вы проверите этот простой код: 'var abc = alert (« Привет »); setInterval (abc, 1000); 'вы увидите, что' setInterval' не работает таким образом –

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