人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Ajaxでjpegやgif等のオブジェクト自体を非同期に取得して表示させる方法はないでしょうか。(多分GoogleMapは画像ファイルを非同期に取得していると思うのですが)

今、自分が実現しているプログラムでは、responseText(あるいはresponseXML)で文字列<OBJECT src="abc.gif"/>
を取得してdivのinnerHTMLに展開しているのですが、その時点からabc.GIFファイルを読みに行くため、待ち状態が発生し、非同期のメリットが生かせない状態になってしまいます。

●質問者: irhnhhtn
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:ABC Ajax GIF JPEG object
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● llusall
●35ポイント

直接の回答ではくすみません。

画像の差し替え程度であれば、Ajaxを使用するまでもないのでは・・・


単純に、

document.myIMG.src = "hoge.jpg";

など、srcに参照をセットして(切り替えて)あげれば良いだけです。


また、プレロードなる方法もあるので、以下を参考にしてください。

プレロードしておけば、待ち状態もないですしね。

http://www.openspc2.org/reibun/javascript/#18

◎質問者からの返答

ありがとうございます。

質問では分かりやすくするためObjectタグのみ書きましたが、実際には前後のHTML(XSL)も同時に取得してます。

また、画像については、沢山の中からチョイスして表示させる為、プレロードの仕組みだと全ての画像を読み込む必要があるので実用的ではありません。

ただ、この方法は知らなかったので別の場面で使えるかと思いますが・・・。


2 ● lains_you
●35ポイント

ブラウザが限定されてしまいますが、base64文字列で画像データを取得し、JavaScriptでその画像を表示させる方法はどうでしょうか?

Firefoxで動作することは確認していますが、IE6では表示できないようなので、あまり実用的ではないかも。

<img id="icon_here">
<script>
 var data = 'data:image/gif;base64,'+
'R0lGODlhHgAVAKL/AP///1paWrW1td7e3kqlIQAAAMDAwAAAACH5BAEAAAYALAAAAAAeABUAQAN2'+
'aLXcXibKKQu4OGvwHv2RdYnCIozYsq0EwYFfJxfCqdEjTM2dsm6tly70+0GGvuIGt6Idh4WBdFDK'+
'MHNIi0ip3SpTyGRgTB5jgk+dqGxuhr1fIfRb5tiaqnjqbj2lYTQ1JQM3d38gXk4jVWBZKBg1VlhQ'+
'cEULCQA7';
 var icon_elem = document.getElementById("icon_here");
 icon_elem.src = data;
</script>
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ