2009-03-23 16 views
7

イメージをAJAXレスポンスのXMLに埋め込み、JavaScriptを使用してそのイメージを読み込むことは可能ですか?イメージをAJAXレスポンスに埋め込む

私は、それを通って走っているセッションの数に基づいていくつかの計算を行うシステムを持っています。結果はグラフ化され、2つの部分で返されます。

1)グラフ、合計、およびユーザーが関連する領域をクリックできるイメージマップデータに関する情報を含むXML。

2)グラフ画像。

データが2つのリクエスト間で変更される可能性があるため(計算コストがかかる可能性があるため)、1回のリクエストでXMLを返すことをお勧めします。現在の実装では、統計情報を小さな期間キャッシュして、複数のリクエストの結果が一致するようにします。キャッシュする必要があるデータの量が増えていくにつれて(2.5Kから〜1.2MBまで)、別の方法を試してみたいと思います。

注:IEではサポートされていないため、インラインb64 PNG画像は使用しません。

+0

私は誰かがこれを行う方法を知っていることを願っていますが、私は悲観的です。 – erikkallen

答えて

3

これは、それは価値があるより多くの仕事のように思えるように、私は簡単な解決策があろうと決めました:

1)グラフ化する内容の詳細をクライアントにXMLデータを送信します。

2)クライアントがグラフのデータ(Google Chart APIに似ています)を含む画像の要求を送信します。

これは、チャートのレンダリングをデータから切り離し、将来他のデータセットの一般的なチャートを生成するために使用できます。もう1つの利点は、1つの要求しか使用されていないため、サーバーサイドのキャッシュを必要としないことです。

3

イメージをサーバーに保存してURLをクライアントに送信できませんか?

+0

彼はキャッシュされた画像のサイズが急上昇しようとしているので、そのルートを避けようとしています。 –

+0

これはオプションですが、ファイル管理を処理するコードを避けたいと思います。 – jthompson

0

保存することはできません。メモリにイメージを作成し、バイナリイメージデータをPHPのようなスクリプトからの応答にフラッシュします。正しいヘッダーを使用してください:

Content-type: image/png 

イメージは毎回再生されます。

イメージがキャッシュされないようにするには、ランダムなパラメータをクエリ文字列に追加します。

+0

イメージはすでにメモリに作成され、そのように送信されます。私が達成しようとしているのは、画像にXMLデータを含めることです。 – jthompson

+0

ええと、base64がオプションでない場合、私は解決策を見ません... –

0

イメージをajax-clientに戻してから、イメージのX-HTTPヘッダーにXMLデータを含めることができます。

ただし、AjaxクライアントからXヘッダーを読み取ることができるかどうかを調べる必要があります。

2

このコンセプトが機能するかどうかは、linkにチェックしてください。このlinkが役に立つかもしれません。

XMLの両方のデータセットを組み合わせようとすると面白いと思います。

1

井戸actually you canしかし、それはおそらく価値があるとは思わないでしょう。それはキャンバスのようなベクトルベースの方法のようであり、VML alternatives for IEはグラフを描画するためのより良い選択肢になります。次に、グラフデータをブラウザに渡すだけです。

関連する問題