Sollte ich einen JSON im Frontend oder Backend verarbeiten, was schneller ist? [geschlossen]

11

Ich erhalte eine Antwort von einer API als JSON-Antwort. Ich codiere in Python für das Backend.

Das Frontend-Team benötigt Informationen aus der rohen JSON-Antwort, um eine Benutzeroberfläche zu füllen. Daher müssen wir den JSON bestellen und ihm das Abrufen von Informationen erleichtern.

Jetzt kann ich den JSON in einem bestimmten Format bestellen und an das Frontend-Team senden, oder ich kann die rohe JSON-Antwort * an das Frontend-Team weiterleiten und sie die Bestellung des JSON und die weitere Verwendung für ihre Benutzeroberfläche übernehmen lassen.

Denken Sie daran, meine JSON-Dateigröße beträgt 15 MB .

Was ist schneller und ein besseres Designprinzip?

Im Backend verarbeiten, dann auf Frontend drücken oder im Frontend verarbeiten?

Dänischer Xavier
quelle
Meiner Meinung nach ist die Verarbeitung auf dem Server in Ihrem Fall aufgrund der Größe und Länge der Daten besser, da Server normalerweise eine viel bessere Leistung bieten als die Browser im PC.
Umair Khan
1
Im Idealfall verwendet das Front-End einfach die API-Antworten. Da die Benutzeroberfläche auf den Computern anderer Benutzer ausgeführt wird (die möglicherweise schwach und langsam sind), möchten Sie keine Daten auf die Clientseite übertragen, da dies zu einer langsamen und unangenehmen Erfahrung in Ihrer Webanwendung führen kann. Die Antwort vom Backend sollte mehr oder weniger in dem für das Frontend erforderlichen Format vorliegen. Im Idealfall sollte das Front-End nicht viel (wenn überhaupt) echte Datenverarbeitung durchführen, sondern auf der Serverseite
Jayce444,
2
15 MB sind ziemlich viel, ich würde es im Backend tun.
Boris

Antworten:

7

Wenn die Dateigröße 15 MB beträgt, wird sie idealerweise in den Speicher des Browsers geladen, wodurch sie langsamer wird. Ich würde empfehlen, den Vorgang nur im Backend auszuführen.

Sie können diesen Link auch als Referenz verwenden. Unterschied zwischen Python und Javascript und was zu verwenden ist

  1. Ein wichtiger Aspekt ist, dass JavaScript schwer zu debuggen ist. Möglicherweise stellen Sie fest, dass das Programm trotz fehlerfreiem Code nicht funktioniert (unbemerkt fehlgeschlagen).
Rahul Goyal
quelle
3

Es ist immer besser, die Daten im Backend selbst zu verarbeiten.

Eswar RDS
quelle
2

Ich würde vorschlagen, dies im Backend durchzuführen. Einige wichtige Gründe, die ich vorschlagen würde, sind:

  • Die Verarbeitung auf Mobilgeräten führt zu einem massiven Batterieverbrauch
  • Wenn Ihr Frontend Web ist, wird Javascript blockiert, während die Verarbeitung stattfindet (was zu schlechten Erfahrungen führen kann).
  • Die Serverantwort kann zwischengespeichert werden, um die Antwortzeiten zu beschleunigen und die doppelte Verarbeitung zu verringern
  • Ihre Backend-Sprache kann die Aufgabe möglicherweise optimaler ausführen als das Frontend-Gerät
Neibesh
quelle
0

Wie andere angemerkt haben, gibt es einige gute Gründe, die Verarbeitung am Backend zu bevorzugen:

  • Wenn Sie alle unnötigen Daten aus dem JSON entfernen können, das an das Front-End gesendet wird, wird die Belastung des Endbenutzergeräts sowohl hinsichtlich der Übertragung als auch hinsichtlich der Analysezeit verringert
  • Möglicherweise kann der Remote-API-Aufruf zwischengespeichert werden, sodass Sie nicht so viele Aufrufe an die Remote-APIs senden müssen (was im Vergleich zum Cache-Abruf normalerweise sehr langsam ist). Sie können die Nachbearbeitungsdaten möglicherweise auch zwischenspeichern, sodass Sie sie nur wiederholt bereitstellen können
  • Sie können Fehler erkennen, die bei der Verarbeitung von JSON auftreten, während dies auf dem Clientgerät weniger sichtbar ist

Ein weiterer großer Vorteil bei der Verarbeitung der API-Antwort im Back-End besteht darin, dass Sie die Struktur auswählen können, die Sie an das Front-End senden. Auf diese Weise können Sie diese Änderung im Back-End verarbeiten, wenn sich die API, die Sie im Laufe der Zeit verbrauchen (oder Sie ändern, welchen Dienst Sie zum Abrufen von Daten verwenden), ohne dass dies Auswirkungen auf den Front-End-Code hat.

SimeonJM
quelle