• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Filtrowanie dużych zbiorów danych - za pomocą JS czy jednak backend?

Object Storage Arubacloud
0 głosów
689 wizyt
pytanie zadane 31 lipca 2018 w JavaScript przez Kondzio Mądrala (5,230 p.)

Witam, miałem dzisiaj w pracy sytuację, w której sam mogłem zdecydować czy filtrować bardzo dużą ilość danych po stronie frontu (angularJS) czy może po stronie backendu (java spring). Moje obiekty, które dostaje są dosyć spore, przygotowałem je w Javie i wypluwałem gotowe JSONy do wbijania praktycznie "bezpośrednio" do html'a.

Po czasie stwierdziłem, że chciałbym te dane filtrować dodatkowym inputem (select) i w tym przypadku musiałem spoooro nakodzić, żeby to fajnie wyszło. Zastanawiam się jednak czy nie lepszą praktyką byłoby bicie na ng-change http requestem dane filtrujące i dać Javie przefiltrować tą listę? Chodzi mi o dobre praktyki, ale i również o optymalizację aplikacji.

Kategoria JS, aczkolwiek nie wiem czy to faktycznie tu najbardziej pasuje :p

3 odpowiedzi

+3 głosów
odpowiedź 31 lipca 2018 przez Bantu Nałogowiec (34,170 p.)
wybrane 1 sierpnia 2018 przez Kondzio
 
Najlepsza

Według mnie wszelkie operacje na tych jak filtry, paginacje (w sumie to też filtr), modyfikowanie itd. Robisz po stronie backendu, front tylko wyświetla te zwrócone dane i tyle. Front też nic nie powinien z danymi robić tak na prawdę. Dostajesz JSONa z backendu i go wyświetlasz na froncie. Wiem czasami to wygląda jakby front coś tam z nimi robił, ale nie powinien.
Dlatego mamy potem takie fajne urle jak np.

http://localhost/products?page=10&limit=20&price=min&invoice=true

Może się w pewien sposób domyślić, że ma pokazać produkty posorotwane poprzez to, czy sprzedawca wystawia fakturę VAT, ma być posorotwane od najmniejszej ceny, oraz ma pokazać 10 stronę, czyli produkty w tym przypadku od 200-220 w kolejności. To tylko mniej więcej przykład.

PS Jeżeli masz problem z dużą ilością danych, które zwraca backend, to znaczy, że jest do dupy i trzeba chyba go zrefactorować w końcu :)

komentarz 1 sierpnia 2018 przez Kondzio Mądrala (5,230 p.)
Pewnie trzeba :P Aczkolwiek dodałem filtrację po stronie backendu i na start nie pobieram całości danych, a tylko najpotrzebniejsze i śmiega szybciej niż po stronie JS
+2 głosów
odpowiedź 31 lipca 2018 przez NIMuser Stary wyjadacz (11,030 p.)
Duże zbiory to raczej głównie backend, po co przesyłać duże pliki do klienta?
komentarz 31 lipca 2018 przez Kondzio Mądrala (5,230 p.)
No tak, w tym problem, że potrzebne dane pełne (powiedzmy dla wszystkich użytkowników) już są ogromne - w przypadku 30-40 użytkowników jest już widoczne nawet mikro ścięcie (~1s). Dlatego też albo po stronie JS przemielę wszystko (a pewnie będzie to trwało jeszcze dłużej) albo wrzucę do Javy i tam się to przefiltruje - aczkolwiek w Javie jestem dość słaby i nie wiem czy to skróci jakoś znacząco cały zabieg
+1 głos
odpowiedź 31 lipca 2018 przez ProgramistaStepek Nałogowiec (27,020 p.)
IMO zależy to od danych. Jeżeli masz tego na prawdę sporo na pewno dobrą praktyką będzie wstępne ogarnięcie (filtrowanie, sortowanie) tych danych na back-endzie i wystawienie na odpowiednim endpoincie. Jednak według mnie nie ma na to pytanie jednej odpowiedzi.
komentarz 31 lipca 2018 przez Kondzio Mądrala (5,230 p.)
Jasne, rzuciłem tym pytaniem, bo nie wiem jak należy jeszcze robić w 100%. Prawdopodobnie najpierw przefiltruję to w JS i zobaczę jak to wyjdzie czasowo, a dla porównania zrobię to w Javie. Co będzie szybsze - zostanie.

Podobne pytania

0 głosów
1 odpowiedź 126 wizyt
pytanie zadane 13 sierpnia 2020 w Java przez Kazek Początkujący (460 p.)
0 głosów
2 odpowiedzi 228 wizyt
pytanie zadane 15 sierpnia 2019 w HTML i CSS przez BlvckFox Gaduła (4,240 p.)
0 głosów
3 odpowiedzi 1,563 wizyt
pytanie zadane 27 listopada 2019 w JavaScript przez michal_php Stary wyjadacz (13,700 p.)

92,565 zapytań

141,416 odpowiedzi

319,598 komentarzy

61,948 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...