Po której stronie robić filtrowanie danych - front, czy backend?

0

Gdzie robić filtrowanie danych? Załóżmy, że pobrałem i wyświetliłem użytkownikowi kilkadziesiąt wierszy w tabelce na stronie.Użytkownik chce teraz wyszukać sobie jakiś interesujące go wiersze, np wiersze gdzie nazwa miasta miasta to Warszawa. Wpisuje nazwę miasta w polu filtra. I teraz jak to się robi, czy lepiej jakimś javascriptem ukryć na wyświetlonej mu stronie wiersze nie spełniające warunku, czy odpytać baze i zwrócić mu nową tabelkę tylko z wierszami spełniającymi warunek?

0

Jeśli masz kilkaset wierszy - filtrowanie po stronie frontendu da radę.
W przypadku kilku tysięcy wierszy - lepiej przerzucić to do backendu.

0

Tylko skoro i tak ma wyświetlone te kilka tysięcy wierszy (zakładam, że nie ma paginacji) to po froncie też będzie spoko.Co innego jak masz paginacje elementów po 50 a obiektów masz 5000. Wtedy nie ma wyjścia i musisz zrobić to w backendzie. A tak to możesz też podejść to tematu w ten sposób, że robisz tak jak ci wygodniej i czytelniej.

0

Ja doświadczenia nie mam, ale wziąłbym to na intuicję. Poza liczbą rekordów, jak wspomnieli przedmówcy, mogłoby to zależeć od czasu, w którym następuje filtrowanie.

Załóżmy, że pobrałem i wyświetliłem użytkownikowi kilkadziesiąt wierszy w tabelce na stronie.Użytkownik chce teraz wyszukać sobie jakiś interesujące go wiersze, np wiersze gdzie nazwa miasta miasta to Warszawa. Wpisuje nazwę miasta w polu filtra.

Co oznacza, że najpierw następuje wyświetlenie jakiejś porcji rekordów (wszystkich albo wcześniej nawet jakoś tam odfiltrowanych), a następnie użytkownik filtruje. Gdyby użytkownik filtrował jeszcze przed pobraniem rekordów z bazy, to wtedy filtrowanie powinno zachodzić w bazie, bo tak było intuicyjnie (i, zdaje się, logicznie). Skoro zaś użytkownik filtruje to, co już otrzymał, nie ma sensu zadawać bazie dodatkowego trudu. Jeśli we front-endzie jednak (mimo zadanego pytania) nie widzi Ci się filtrowanie, to może spróbuj poprosić użytkownika o filtrowanie jeszcze przed pierwszym pobraniem jakichś rekordów?

1 użytkowników online, w tym zalogowanych: 0, gości: 1