Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ XML, AJAX _ Dynamiczne odświeżanie pola w tabeli

Napisany przez: koksu 28.10.2020, 23:26:39

Cześć

Ma sobie tabelkę w datatables, obecnie 200 rekordów, docelowo kilkanaście tysięcy. W niej są komputery uzytkownikow wraz z IP, nazwa usera itp. Jest tez pole online. Chcialbym moc je aktualizowac bez odswiezania calej strony bo jak wiadomo caly order z datatables, wyniki wyszukiwania itp ulegaja utracie. Zrobilem prosty skrypcik ktory po wywolaniu online.php?id=id_komputera zwraca "Online" albo "offline". Chcialbym jeszcze za pomoca klikniecia przycisku przy odpowiednim polu w tabelce moc aktualizowac status online tego konkretnego komputera bez przeladowywania calej strony. Czy moglbym prosic o poradnik krok po kroku jak to zaprogramowac?

Napisany przez: SmokAnalog 28.10.2020, 23:37:11

W dokumentacji DataTables masz opisane: https://datatables.net/examples/ajax/

Na pewno nie powinieneś mieć API, które zwraca dane jednego elementu, bo request trwa zbyt długo, żeby odświeżać po jednym. Lepiej byłoby zwracać kilka naraz lub nawet wszystkie naraz.

Napisany przez: koksu 29.10.2020, 08:10:18

No nie wiem, bo zeby zwrocic staus komputera serwe najwpierw musi go zpingowac a pingowanie kilku tysiecy urzadzen trwaloby zbyt dlugo.

Bo to nie tylko chodzi o zaladowanie danych do tabelki ale tez zlecene serwerowi zupdatowania konkretnego rekordu.

Napisany przez: SmokAnalog 29.10.2020, 11:44:58

Przede wszystkim polecam pingować wiele urządzeń naraz. Nie zrób tego błędu co ja kiedyś przy tworzeniu crawlerów, kiedy odwiedzałem jeden adres, czekałem i dopiero po otrzymaniu odpowiedzi pingowałem kolejny. Nie wiem dokładnie co tworzysz, ale może warto pingować te rekordy, które są akurat na ekranie? Jeśli sprytnie to zaimplementujesz, to dostaniesz całkiem żwawo odświeżającą się tabelę.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)