Aktualizace dat na frontendu rubrika: Programování: JavaScript
Zdravím,
potřebuji napsat frontend k appce, ale jsem primárně backenďák, takže mi chybí teorie o tom, jak to správně uchopit.
Zobrazujeme na webu data z databáze, konkrétně se jedná o 200 html tabulek, každá má 10 řádků a 20 sloupců - spousta dat.
Data v databázi se mění, každé 3 sekundy je větší či menší update - někdy změna obsahu jedné buňky, někdy všechny buňky v řádku, zároveň uživatel může nad daty provádět filtraci, zobrazovat/skrývat sloupce, řádky nebo celé tabulky.
Momentálně se html generuje na backendu, včetně updatů - pokud se aktualizují data v řádku, server odešle , pokud je potřeba přepsat tabulku, posílá se celý . Pokud uživatel provede akci (zobrazení, skrytí, filtrování, etc.) odešle se request na server a vrátí se změněná data (tr, table, nebo celý div se všemi daty). Všechno se posílá jako json object stylem {'table_123_tr_321':'....'} a následně javascriptem nahrazuje v html.
Informace které se zobrazují jsou informace z jednoho časového úseku, uživatel může zvolit jiný a tím dojde k přepsání všech dat na stránce. Zároveň některé filtrace/řazení vyžadují veškeré řádky tabulek mít v jedné tabulce, takže se těch 200 tabulek odstraní a vytvoří se jedna s 2000 řádky, po deaktivaci filtrace zase opačně.
Současně řešení popsané výše (posílání html ze serveru, javascript/jquery na frontendu) naráží na výkonostní problémy. I na desktopu se s tím pracuje poměrně špatně (pomalé reakce, několiavteřinová vytuhnutí atp) a mělo by to být ideálně použitelné na telefonech, takže hledám jinou cestu.
Zobrazení všech dat najednou je nezbytné - je to podstata aplikace a nelze se tomu vyhnout.
Nebráním se ani větší změně technologie, ale samozřejmě zázračná rada, jak ty problémy vyřešit jednoduše by se hodila.
Jak jsem psal, nejsem frontenďák, takže i obecné rady a tipy jak to správně uchopit jsou vítané.
Díky
K otázke sa velmi vyjadrovať nebudem, len chcem dať tip na js knižnicu ktorá by sa tu mohla hodiť:
- zvláda milióny riadkov rýchlosťou blesku
- celá definícia sa vykonáva v javascripte, teda nie je potrebné generovanie html kódu tabulky - len pošleš json s dátami.
- je to reaktívne - keď prídu nové dáta zo serveru, stačí zavolať grid.records = records a celá tabulka by sa mala automaticky aktualizovať.
- použitelné na mobilných zariadeniach. Na staršom iPade velmi rýchle, na Android telefóne už to bolo trochu pomalšie (ale 1 mil. riadkov), s 2000 to asi bude ok.
Komentáře
- unabombe : Děkuju, podívám se na to. — 1.11.2021
Pro zobrazení všech 4 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře