私のウェブサイトにはいくつかのページがあり、3〜4つのサイトに接続し、データベースで結果を確認し、完全なテーブルを収集します。このテーブルには、訪問者が必要とするすべてのデータが含まれています。
バスケットボール、フットボール、バレーボールの最新の100試合の得点表と考えることができます。ユーザーは、勝者、最新のスコア、ゲームの場所、ベットデータなどを確認できます。
データのソースは15分ごとに変化します。したがって、この期間にユーザーがページをリロードすると、多くのCPUが消費され、データベースクエリが実行された後、ほぼ同じテーブルが表示されます。 (小さな違いがあります)
データが1時間後に無効になるため、テーブルデータをWebストレージに保存しません。
私の懸念は、訪問者がページをリロードすると、このプロセスが再び行われることです。どうすればこれを解決できますか?
私の頭に浮かぶ最初のアイデア:
いくつかのアイデアやより良い実践を共有できれば幸いです。ありがとうございました
私が最初に考えたのは、数回のリロードが問題を引き起こしている場合、あなたは確かにどこか間違ったことをしているということです。すべてのページの読み込みで他のサイトに接続しないでください。これは、リロードに関係なく、そもそもユーザーエクスペリエンスを低下させます。さらに、他のサイトが常に稼働しており、有効なデータを返すようになります。
最善の方法は、ほぼ確実にデータをキャッシュすることです。データにはいくつかのレベルがあります。外部サイトのデータが15分ごとに変更される場合、別のcronジョブを実行してそのデータを取得し、サーバーに保存します(XMLファイルを取得する場合は、そのファイルを保存します)。これにより、ページがロードされるたびにデータ処理が大幅に高速化されます。
次に、データ処理の結果、つまり出力するテーブルをキャッシュできるかどうかを確認します。出力がすべてのユーザーで同じ場合、これは非常に簡単です。すべてのユーザーが異なる設定をしている場合など、より多くのスペースを占有しますが、少なくともそこにできることがあります。
あなたのアイデアについて: