3 votes

Meilleure pratique pour le chargement d'une page web avec un long script côté serveur

Quelle est la meilleure pratique et méthode actuelle pour charger une page web (qui contient 10 à 15 secondes de script côté serveur).

  • L'utilisateur clique sur un lien > le serveur s'exécute > une page html est renvoyée (vide) page vierge pendant 10 à 15 secondes).
  • L'utilisateur clique sur un lien > la page html est immédiatement renvoyée (avec l'état d'avancement) (avec une barre de progression) > requête AJAX vers le serveur > compléter script > renvoyer le résultat en html.
  • Autres options (filetage ?)

J'utilise l'environnement standard de Google App Engine (Python).

2voto

Alex Points 2371

La meilleure pratique serait que le script ne prenne pas 10 à 15 secondes.

Que fait votre script ? Génère-t-il quelque chose que vous pouvez pré-calculer et mettre en cache ou enregistrer dans Google Cloud Storage ?

Si vous enchaînez les requêtes sur le datastore, y a-t-il quelque chose à faire pour qu'elles se déroulent de manière asynchrone en tandem ?

Si cela doit vraiment prendre 10 à 15 secondes, je dirais que l'option 2 s'impose :

L'utilisateur clique sur un lien > la page html est immédiatement renvoyée (avec une barre de progression) > la requête AJAX est envoyée au serveur > le script est complété > le résultat est renvoyé au html.

1voto

noob Points 3962

Notre méthode consiste à utiliser l'approche Ajax (la deuxième), ce que tout le monde fait.
Vous pouvez utiliser les files d'attente de tâches pour exécuter vos scripts de manière asynchrone et renvoyer le résultat au front-end à l'aide de FCM ( Firebase Cloud Messaging ).
Vous devriez également essayer de diviser le script en plusieurs files d'attente de tâches pour qu'il s'exécute plus rapidement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X