Dois-je traiter un JSON dans le frontend ou le backend, ce qui est plus rapide? [fermé]

11

Je reçois une réponse d'une API en tant que réponse json. Je code en python pour le backend.

L'équipe frontend a besoin des informations de la réponse json brute pour remplir une interface utilisateur, nous devons donc commander le json et lui permettre de récupérer plus facilement les informations.

Maintenant, je peux commander le json dans un format spécifique et l'envoyer à l'équipe frontend ou je peux transmettre la réponse json brute * à l'équipe frontend et les laisser gérer la commande du json et l'utiliser pour leur interface utilisateur.

Rappelez - vous ma taille de fichier JSON est 15MB .

Quel est le principe de conception le plus rapide et le meilleur?

Traiter dans le backend puis pousser vers le frontend ou traiter dans le frontend?

Danois Xavier
la source
À mon avis, le traitement sur serveur est meilleur dans votre cas en raison de la taille et de la longueur des données, car les serveurs donnent généralement de bien meilleures performances que les navigateurs sur PC.
Umair Khan
1
Idéalement, le front-end consomme simplement les réponses de l'API. Étant donné que l'interface utilisateur s'exécutera sur les ordinateurs d'autres personnes (qui peuvent être faibles et lents), vous ne voulez pas décharger les données sur le côté client car cela peut entraîner une expérience lente et désagréable dans votre application Web. La réponse du backend doit être plus ou moins dans le format requis pour le front-end. Idéalement, le front-end ne devrait pas faire beaucoup (le cas échéant) de traitement réel des données, cela devrait être fait côté serveur
Jayce444
2
15 Mo, c'est beaucoup, je le ferais sur le backend.
Boris

Réponses:

7

Idéalement, si la taille du fichier est de 15 Mo, il sera chargé dans la mémoire du navigateur, ce qui le ralentira, je suggère de faire l'opération en backend uniquement.

Vous pouvez également parcourir ce lien pour référence. Différence entre python et Javascript et quoi utiliser

  1. Un aspect important est que JavaScript est difficile à déboguer. Vous remarquerez peut-être que bien que votre code soit exempt d'erreurs, le programme ne fonctionnera pas (échouera en silence).
Rahul Goyal
la source
3

Il est toujours préférable de traiter les données elles-mêmes.

Eswar RDS
la source
2

Je suggérerais de faire cela sur le backend, quelques raisons clés que je suggérerais c'est:

  • Le traitement sur les appareils mobiles entraîne une décharge massive de la batterie
  • Si votre interface est Web, javascript se bloquera pendant le traitement (ce qui pourrait conduire à de mauvaises expériences)
  • La réponse du serveur peut être mise en cache pour accélérer les temps de réponse et réduire le traitement des doublons
  • Votre langue backend peut être en mesure d'effectuer la tâche de manière plus optimale que le périphérique frontend peut
Neibesh
la source
0

Comme d'autres l'ont fait remarquer, il existe de nombreuses bonnes raisons de préférer le traitement en arrière-plan:

  • si vous pouvez supprimer toutes les données inutiles du JSON envoyé au front-end, cela réduira la charge sur l'appareil de l'utilisateur final en termes de transfert mais également en temps d'analyse
  • il peut être possible de mettre en cache l'appel d'API distant, vous n'avez donc pas besoin de faire autant d'appels vers les API distantes (qui seront généralement très lentes par rapport à la récupération du cache). Vous pouvez également potentiellement mettre en cache les données de post-traitement, vous pouvez donc simplement les servir à plusieurs reprises
  • Vous pouvez détecter les erreurs qui se produisent lors du traitement du JSON, alors que cela est moins visible si cela se produit sur la machine cliente

Un autre gros avantage du traitement de la réponse de l'API sur le back-end est que vous pouvez choisir la structure que vous envoyez au front-end. De cette façon, si l'API que vous consommez change au fil du temps (ou si vous changez le service que vous utilisez pour récupérer des données), vous pouvez gérer ce changement sur le serveur principal sans que cela n'affecte le code frontal.

SimeonJM
la source