Czy powinienem przetwarzać JSON w frontendzie czy backendu, który jest szybszy? [Zamknięte]


11

Otrzymuję odpowiedź z API jako odpowiedź JSON. Piszę w Pythonie dla backendu.

Zespół frontendowy potrzebuje informacji z surowej odpowiedzi JSona do wypełnienia interfejsu użytkownika, dlatego musimy zamówić JSON i ułatwić im pobieranie informacji.

Teraz mogę zamówić JSON w określonym formacie i przekazać go zespołowi frontendowemu lub przekazać surową odpowiedź JSON * zespołowi frontendowemu i pozwolić im obsłużyć zamówienie JSON i dalej używać ich interfejsu użytkownika.

Pamiętaj, że mój plik json ma rozmiar 15 MB .

Która jest szybsza i lepsza zasada projektowania?

Przetwarzasz w backend, a następnie wypychasz do frontonu czy przetwarzasz w frontend?


Moim zdaniem przetwarzanie na serwerze jest lepsze w twoim przypadku ze względu na rozmiar i długość danych, ponieważ zwykle serwery dają znacznie lepszą wydajność niż przeglądarki na PC.
Umair Khan

1
W idealnym przypadku interfejs użytkownika po prostu zużywa odpowiedzi interfejsu API. Biorąc pod uwagę, że interfejs użytkownika będzie działał na komputerach innych osób (które mogą być słabe i powolne), nie chcesz odciążać przenoszenia danych po stronie klienta, ponieważ może to prowadzić do powolnego i nieprzyjemnego działania w Twojej aplikacji internetowej. Odpowiedź z backendu powinna być mniej więcej w formacie wymaganym dla frontonu. Idealnie byłoby, gdyby fronton nie robił dużo (jeśli w ogóle) prawdziwego przetwarzania danych, to powinno być zrobione po stronie serwera
Jayce444

2
15 MB to całkiem sporo, zrobiłbym to na backendie.
Boris

Odpowiedzi:


7

Idealnie, jeśli rozmiar pliku to 15 mb, zostanie załadowany do pamięci przeglądarki, co spowolni go, sugerowałbym wykonanie operacji tylko w backendie.

Możesz również przejść przez ten link w celach informacyjnych. Różnica między Pythonem a Javascriptem i czego używać

  1. Jednym ważnym aspektem jest to, że JavaScript jest trudny do debugowania. Możesz zauważyć, że pomimo tego, że kod jest wolny od błędów, program nie będzie działał (zawiedzie cicho).


2

Sugerowałbym wykonanie tego na backendie, kilka kluczowych powodów, dla których sugerowałbym to:

  • Przetwarzanie na urządzeniach mobilnych prowadzi do ogromnego zużycia baterii
  • Jeśli twój interfejs jest sieciowy, javascript zostanie zablokowany podczas przetwarzania (co może prowadzić do złych doświadczeń)
  • Odpowiedź serwera może być buforowana w celu przyspieszenia czasów odpowiedzi i zmniejszenia przetwarzania duplikatów
  • Twój język zaplecza może być w stanie wykonać zadanie bardziej optymalnie niż urządzenie frontendowe

0

Jak zauważyli inni, istnieje kilka dobrych powodów, aby preferować przetwarzanie na zapleczu:

  • jeśli możesz usunąć wszystkie niepotrzebne dane z JSON wysyłanego do interfejsu, zmniejszy to obciążenie urządzenia końcowego zarówno pod względem transferu, jak i czasu analizy
  • może być możliwe buforowanie zdalnego wywołania API, więc nie trzeba wykonywać tylu wywołań do zdalnych interfejsów API (co zwykle będzie bardzo wolne w porównaniu do pobierania z pamięci podręcznej). Możesz także potencjalnie buforować dane po przetworzeniu, więc możesz po prostu podawać je wielokrotnie
  • Możesz wykryć błędy występujące podczas przetwarzania JSON, ale jest to mniej widoczne, jeśli dzieje się to na urządzeniu klienckim

Inną dużą zaletą przetwarzania odpowiedzi API na zapleczu jest to, że możesz wybrać strukturę, którą wysyłasz do interfejsu. W ten sposób, jeśli interfejs API, którego używasz, zmienia się w czasie (lub zmieniasz usługę, której używasz do pobierania danych), możesz obsłużyć tę zmianę na zapleczu, bez wpływu na kod frontonu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.