Używam datatables jako mojej siatki na webappie. Problem polega na tym, że użytkownik musi odświeżyć stronę zawsze, aby uzyskać aktualne dane z bazy danych, czy jest sposób, w jaki można to zrobić automatycznie? ponieważ kilka aplikacji zapisuje dane w tej samej tabeli, a aplikacja internetowa służy tylko do monitorowania, ale bije na cel, jeśli użytkownik musi odświeżyć stronę, aby pobrać aktualne dane. tutaj jest mój kod inicjalizacji:jak stale aktualizować datatables, gdy zmieniają się rekordy w bazie danych, websockets lub długie wdrażanie pollingu
$('.{{datatable['class']}}').dataTable({
"sDom": 'T<"clear">lfrtip',
"oTableTools": {
"sSwfPath": "includes/swf/copy_csv_xls_pdf.swf",
"aButtons": [
{
"sExtends":"copy",
"mColumns":[{{datatable['flds']}}]
},
{
"sExtends":"csv",
"mColumns":[{{datatable['flds']}}]
},
{
"sExtends":"xls",
"mColumns":[{{datatable['flds']}}]
},
{
"sExtends": "pdf",
"mColumns":[{{datatable['flds']}}],
"sPdfOrientation": "landscape",
"sPdfMessage": "{{datatable['title']}}"
}
]
},
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "{{datatable['source']}}",
"aoColumns": [
{% for column in 0..datatable['columns']-2 %}
null,
{% endfor %}
null
]
});
czy istnieje sposób lista może być aktualizowanie sobie za każdym razem coś (UPDATE/INSERT/DELETE) akurat źródła danych? I wprowadziły pętlę jak sugeruje Danny,
var int=self.setInterval(function(){oTable.fnDraw();},1000);
ale problemem jest to, że lista jest zawsze stanem zabawne, zobaczyć attatched obraz
czy możesz podać przykład tej pętli? po drugie nie mogę używać liczby rekordów, ponieważ większość zmian to aktualizacje i aktualizacje, które nie zmieniają rekordów. – indago
@indago Ya może utworzyć nową tabelę lub plik tylko po to, aby ostatnia wstawka/aktualizacja/usunięcie została użyta jako czek. – Danny
http://www.w3schools.com/jsref/met_win_setinterval.asp Pamiętaj, że jeśli ustawisz naprawdę niski interwał, może on aktualizować się szybciej, ale jeśli masz wielu użytkowników, stworzy wiele żądań http, może też wiele więc musisz zrównoważyć interwał do tego, co twój serwer może obsłużyć w oparciu o ruch użytkownika i statystyki serwera ect. – Danny