2012-10-09 10 views
5

私は、複数のクライアント(ブラウザ、他のアプリケーション、UNIXシェルスクリプト、Pythonスクリプトなど)からの同じリソースのJSON表現ではむしろポーリングされているサイトを持っています。openrastaでのサーバーサイドキャッシング

リクエストを処理してリソースをJSONにシリアライズしないように、構成可能な時間内にリソースがサーバー内にキャッシュされるようにキャッシングを追加したいとします。私はもちろん、ハンドラ内で自分自身をキャッシュすることもできますが、すべてのリクエストでシリアル化ヒットを受け取り、ハンドラのロードを変更する必要があります。

私はopenrasta-cachingモジュールを見てきましたが、これはブラウザのキャッシュを制御するためだけだと思いますか?
コーデックがそれを生成した後に、リソースのレンダリングされた表現をキャッシュするためにopenrastaをどのように得ることができますか?

おかげ

+0

リソースへのほとんどすべての更新がハンドラを介して入ってくるので、キャッシュをプログラムで無効にすることができれば便利だと付け加えてください。 –

+0

ご使用のバージョンの.netはどのバージョンですか? – JPReddy

+0

私は.net 4.0で作業しています。なぜですか? –

答えて

1

openrastaキャッシングを使用すると、ServerCaching属性を使用して、asp.netのサーバー側のキャッシュにマッピングできるAPIで、サーバー側のキャッシュのための予備的なサポートを持っています。それは完全ではないと言いました。また、オープンラスタキャッシングもそうではありません。 Asp.netのキャッシュインフラストラクチャが現在サポートしていない(主に、OpenRastaの仕事でキャッシュを作ることをサポートしたいと思っていたすべてのシナリオを完全にサポートする良いv1にするために数日間の作業が必要です。厳密にはHTTPの仲介ではなく、クライアントとサーバーのクエリをやり直すようにクライアントに要求する時間のためのサーバーキャッシュのクライアント制御を含む、asp.netの土地に存在する.net中心のものです)。私は現在、キャッシュに取り組んでいるクライアントプロジェクトがないので、そのプラグインの今後の作業を正当化するのは難しいので、今は何もコーディングしていません。私は4日間無料でご利用いただけますので、オープンラスタキャッシングを必要とする場合は、私は3日間作業に合った必要条件をすべて満たして0.3にするようにしてください。

IOperationInterceptorを使用してより簡単なものを実装し、それを使用してasp.netパイプラインをプラグインするか、よりウェブにやさしく、squidを使用してキャッシングを実装し、正しいhttpキャッシングを生成するためにopenrasta-caching指示。

あなたの問題では、コストがjsonの場合はサーバーキャッシュも必要ないかもしれません。最後に修正したものかEtagをハンドラが返すものにマップすると、適切な場合には304が生成され、jsonレンダリングはすべてバイパスされます(ただし、クライアントが条件付き要求を行う必要があります)。

最後に変更された/ etagの最初のクエリを実行してデータを取得せずに304を返すことで、APIをさらに最適化できるようにするためのAPIもあります。

関連する問題