問題タブ [django-caching]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - スタッフ以外の全員のキャッシュ
スタッフメンバーのすべての非管理ページの上部に「管理バー」を貼り付けたいDjangoサイトがあります。ページ編集ツールなどの便利なものが含まれます。
問題は、@cache_page
多くのページでデコレータを使用していることにあります。通常のユーザーがページにアクセスすると、キャッシュされたバージョンが管理バーなしで (管理ユーザーの場合でも) 表示され、管理者が最初にページにアクセスすると、通常のユーザーには管理バーが表示されます。
地域のキャッシュ ブロックを追加して、テンプレートを退屈な手順で確認することもできますが、テンプレートがたくさんあり、寿命が短すぎます。
理想的には、管理者ユーザーからのキャッシュの取得/設定要求を無視するようにキャッシングに指示する方法があります...しかし、それを最もよく実装する方法がわかりません。
この問題にどのように取り組みますか?
python - テンプレートキャッシュを消去する
私はユーザーが2つのインターフェースモードから選択できるDjangoアプリを持っています、そのモードはいくつかのページに影響を与えます...それらのページのために私は異なるテンプレートを使用します
urls.pyには、次のようなものがあります。
次に、私の見解は次のようなものです。
私の問題は、ユーザーがモード2を選択した場合(カスタム構成ページで)、サーバーが再起動されるまでモードが変更されないことです(apacheまたはrunserver.pyのいずれかが同じです)。
これはキャッシュと関係があると思いますが、そのキャッシュを消去する方法が見つかりません。(Config.modeが変更されるたびに。)
django - Django - 複数サイトのサイトキャッシュ
サイト全体のキャッシュを実装したい 1 つの Django アプリケーションの下に多数のサイトがあります。しかし、それは本当に面倒なことであることが証明されています。
何が起こるかというとsettings.CACHE_MIDDLEWARE_KEY_PREFIX
、起動時に一度設定され、現在のサイトが何であるかに応じて先に進んで変更することはできません. その結果、 url のページhttp://website1.com/abc/
がキャッシュされている場合、 はキャッシュhttp://website2.com/abc/
されたバージョンのhttp://website1.com/abc/
. これらの Web サイトは両方とも、同じ Django インスタンスで実行されています。これは、Django サイトが私たちに許可しているように見えるためです。
これは間違ったアプローチですか?CACHE_MIDDLEWARE_KEY_PREFIX
実行時に動的に設定できないため、Django のサイト全体のキャッシュを使用して複数のサイトをキャッシュできません。テンプレートとビューのキャッシュについてもこれを行うことができません。
これを実際にセットアップする必要があるのは、各サイトが独自の Django インスタンスを必要とするという印象を受けます。これは、設定ファイルを除いてほとんど同じです。私の場合は、CACHE_MIDDLEWARE_KEY_PREFIX
. これらの Django インスタンスはすべて、同じデータベースに対して読み取りと書き込みを行います。これは、多くの新しい問題を引き起こす可能性があるため、私は懸念しています。
私は正しい道を進んでいますか、それともマルチサイト アーキテクチャがどのように機能する必要があるかについて間違っていますか? Django のドキュメントを確認しましたが、複数のサイトにサービスを提供する Django アプリケーションのキャッシング (低レベルのキャッシングではない) を処理する方法については実際には言及されていません。
django - 継続的にループするスクリプトの Django クエリセットに反映されない DB データの変更
Django の ORM を使用して、Db から新しく追加されたエントリを取得し、それらをメッセージング キューに渡しています。私は無限 while ループでこれを行っています。すべてのループ反復の問題 このスクリプトの実行中にエントリを追加/削除/編集した場合でも、同じクエリセットを取得しています。
コードは次のようになります。
各反復で最新のデータを反映するにはどうすればよいですか?
django - Django キャッシュに大きなテーブルを効率的に格納する
私は Django を jqGrid で使用し、AJAX を介してページを読み込みます。場合によっては、クエリが非常に複雑になり、ページの読み込みが非常に遅くなります。これは、far ページが非常に遅くなるためです (予想されることですが、結果はしばしば 100k オブジェクトを超えます)。結果のキャッシュは問題を解決し、最初のページの読み込みに時間がかかりますが、その後のページの読み込みを大幅に加速すると考えました。
代わりに、最初のページの読み込みが非常に遅くなり、後続のページでさえ多くの時間がかかりました (標準の PC で 11 秒)。私は locmem キャッシュ バックエンドを使用しています。何か案は?比較のために、グローバル ディクショナリに結果を保存しようとしましたが、それははるかに優れていました (後続のページは 1 秒しかかかりません) が、安全な方法ではないと聞いています。
何か案は?
python - Djangoのグローバル変数/変数キャッシング
私のウェブサイトでは、サイドバーで最も閲覧されている製品カテゴリを複数のページでユーザーに提示したいと思います。
したがって、それぞれの異なるビューで私は持っています:
さまざまなテンプレートで
そしてその1つで:
ただし、most_viewed_categoriesの値は、すべてのビューで計算するのではなく、2日ごとに1回だけ計算したいと思います。
ビューをキャッシュできることは知っていますが、これはより可変的なキャッシュです。この変数をDjangoサーバーのどこかにキャッシュして、その期間の後にのみ更新することは可能ですか?これをどのように行うのでしょうか?
ありがとうございました
django-cache - Django キャッシュ システムはどのように機能しますか?
Django キャッシュ システムはどのように機能しますか?
django - Google MapsGroundOverlayがDjangoで提供される動的画像をキャッシュしない
サーバーで生成された画像を表示するために、JavaScriptでGoogleマップオーバーレイ(v 3.10)を設定しました。
urlが静的URLを指している場合、オーバーレイは正常に機能します。ただし、Django(v 1.4)の動的URLを指している場合、画像は正しく表示されませんが、マップがスクロールされると、サーバーがURLを要求し続けます。 例えば:
Django urls.pyの場合:
URLは次のコードにリダイレクトされます:
したがって、おそらくHTTPヘッダーの何かに関連して、Googleマップ/ブラウザがキャッシュの目的で画像を処理する方法にいくつかの違いがあるように思われます。画像が取得された後もサーバーリクエストを送信し続けないようにするにはどうすればよいですか?
ブラウザコンソールで応答ヘッダーを調べると、静的画像には「Content-Length」フィールドと「Last-Modified」フィールドがあり、動的画像にはないようです。それが適切かどうかわからない。
助けてくれてありがとう。
django - Django + memcached: generate cached pages automatically?
I am using Django + memcached and have a (hopefully) simple question.
My database is updated once a day. My pages are set to time out after 24 hours.
Is there a way to generate all the pages of the site into the cache once each day, just after the database is updated, in advance of any users coming to them?
I'd like the first user of the day to see the fast-loading cached version, not the slow-loading non-cached version.
I guess I could do this by scraping the site, but is there a neater way?