1

動的に生成された画像 (jpeg) を含む動的に生成された HTML ページがあります。私のアプリケーションにとって、これらの動的に生成されたリソースの両方が互いに一貫していることが重要です。(HTML には、画像の上にオーバーレイするいくつかの要素が含まれています。)もちろん、両方のリソースが異なる HTTP 要求でフェッチされるため、これは少し注意が必要です。

サーバーコードでこれを構造化する最良の方法は何ですか? Play はこれを処理するための特定の何かをサポートしていますか?


いくつかのオプションが思い浮かびます:

1 つ目は、HTML ページのリクエスト中に画像のパラメーターを計算し、これらのパラメーターを画像の URL に配置することです。残念ながら、ここにはかなりの状態があり、URL には収まらないと思います。

別の方法として、HTML の要求中に画像 (またはそのパラメーターのみ) を生成し、それをサーバー側のどこかに隠しておくこともできます。次に、画像リクエストが来ると、事前に生成された画像を返すことができます。このソリューションの唯一の問題は、生成された画像のサーバー側の寿命について心配する必要があることです。

4

1 に答える 1

1

実際には両方のアプローチが正しいですが、とにかく最初のアプローチを選択します。ページをレンダリングする前に何らかの理由でリクエストが終了した場合、理由は簡単です。画像をレンダリングするためのリソースが失われ、決して使用されません。もう1つのことは、(おそらく)コントローラーからだけでなく、任意のリクエストから画像をレンダリングできるはずであるため(2番目のアプローチで説明されているように)、リクエストパラメーターに基づいてレンダリングできるアクションを作成することをお勧めします。

結論(注、それは私の推測です)-おそらく、必要なすべてのパラメーターを単一の文字列にエンコードできます(つまり、次のような文字で割ったものです:1234_w600_h200.jpg、つまり:レコードのIDがあるデータベースから画像を取得1234し、サムネイルを作成しますwidth 600pxおよびheight 200px. またはさらに単純です (afaik flicker はこれを使用します) 1234s.jpg, 1234m.jpg, 1234l.jpg, ここでs, m,l付録は、いくつかの定義済みのサムネイル サイズを表します。

したがって、最後にコントローラーからビューに渡す必要があるのは最初の部分です-DBレコードのID、ビューに直接追加できる他の部分(ディメンション)であり、必要に応じてそれを行うことができます...例:ダウンロードスモール、中または大バージョン...

于 2013-03-19T21:50:48.960 に答える