Sur mon site Web, j'ai quelques pages qui établissent des connexions avec 3 ou 4 sites, vérifient les résultats avec ma base de données et rassemblent un tableau complet. Ce tableau comprend toutes les données dont le visiteur aurait besoin.
Vous pouvez le penser comme un tableau des scores des 100 derniers matchs de basket, football et match de vallée. Les utilisateurs voient qui a gagné, le dernier score, l'emplacement du jeu, les données de paris, etc.
Les sources de données changent toutes les 15 minutes environ. Par conséquent, si l'utilisateur recharge la page au cours de cette période, il verra presque la même table après avoir consommé beaucoup de temps processeur et interrogé la base de données. (Il existe de petites différences)
Je ne sauvegarde pas les données de la table dans mon stockage Web, car les données ne sont plus valides au bout d'une heure.
Mon souci est, si le visiteur recharge la page, ce processus sera répété. Comment puis-je faire résoudre ce problème?
Premières idées qui me viennent à l'esprit:
Je serais heureux si vous pouviez partager des idées ou de meilleures pratiques. Je vous remercie
La première chose à laquelle je pensais, c’est que si quelques rechargements posent un problème, vous faites certainement quelque chose qui ne va pas quelque part. Vous ne devriez jamais établir de connexions avec d'autres sites à chaque chargement de page, car cela nuit à l'expérience utilisateur, indépendamment des rechargements. De plus, vous êtes à la merci d’autres sites toujours opérationnels et qui renvoient des données valides.
Votre meilleur pari est presque certainement de mettre en cache les données, à plusieurs niveaux. Si les données des sites externes changent toutes les 15 minutes, exécutez un travail cron distinct pour extraire ces données et les stocker sur vos serveurs (par exemple, si vous extrayez un fichier XML, stockez-le). Cela accélérera énormément le traitement des données à chaque chargement des pages.
Deuxièmement, vérifiez si vous pouvez mettre en cache les résultats du traitement des données, c'est-à-dire le tableau que vous avez généré. Si la sortie est la même pour tous les utilisateurs, c'est simple. Si chaque utilisateur a un paramètre différent, etc., cela prendra beaucoup plus de place, mais vous pouvez au moins faire quelque chose.
En ce qui concerne vos idées: