mod_wsgi を介して Apache で Django を実行しています。Django がページをサーバー側にキャッシュしているため、一部の機能が正しく動作しないと思われます。
現在のサーバー時間を取得し、残りのカウントダウン時間を決定し、その数を HTML テンプレートに出力することで機能するカウントダウン タイマーがあります。JavaScript のカウントダウン タイマーが引き継ぎ、ユーザーのカウントダウンを実行します。
この問題は、ユーザーがページを更新したり、カウントダウン タイマーを使用して別のページに移動したりするときに発生します。タイマーは散発的に異なる時間にジャンプするように見え、通常は更新のたびに同じ時間に何度も戻ります。
HTTPFox を使用すると、ブラウザのキャッシュからページが読み込まれないため、Django または Apache がページをキャッシュしているように見えます。この機能を無効にする方法はありますか? スクリプト出力のキャッシュについて心配するほど十分なトラフィックはありません。それとも、なぜこれが起こっているのかについて完全に間違っていますか?
[編集] 以下の投稿から、キャッシングが Django で無効になっているように見えます。
[編集] 何が起こっているかについてのより詳細な説明があります: サーバーに対して行われた最初の 7 (またはそれくらい) の要求では、ページはスクリプトによってレンダリングされて返されますが、これらの 7 ページのそれぞれはそのままキャッシュされているようです。後で現れます。8 番目の要求で、サーバーは最初のページを提供します。9 番目の要求で、2 番目のページを提供するなど、1 サイクルで続きます。これは、プロセスが最初からやり直すときにApacheを再起動するまで続きます。
[編集] 一度に 1 つのプロセスのみを実行するように mod_wsgi を構成しました。これにより、タイマーは常に同じ値にリセットされます。興味深いことに、私のページには別のコンポーネントがあり、order('?') を使用してリクエストごとにランダムな画像を表示し、毎回異なる画像で更新します。これは、キャッシングが Apache ではなく Django で行われていることを示します。
[編集] 以前の編集に照らして、関連する views.py ファイルに戻って確認したところ、カウントダウン開始変数がビュー関数の外のモジュールでグローバルに設定されていることがわかりました。その設定をビュー関数内に移動すると、問題が解決しました。結局、キャッシングの問題ではないことが判明しました。これについてご協力いただきありがとうございます。