今、自分が実現しているプログラムでは、responseText(あるいはresponseXML)で文字列<OBJECT src="abc.gif"/>
を取得してdivのinnerHTMLに展開しているのですが、その時点からabc.GIFファイルを読みに行くため、待ち状態が発生し、非同期のメリットが生かせない状態になってしまいます。
直接の回答ではくすみません。
画像の差し替え程度であれば、Ajaxを使用するまでもないのでは・・・
単純に、
document.myIMG.src = "hoge.jpg";
など、srcに参照をセットして(切り替えて)あげれば良いだけです。
また、プレロードなる方法もあるので、以下を参考にしてください。
プレロードしておけば、待ち状態もないですしね。
ブラウザが限定されてしまいますが、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>
ありがとうございます。
質問では分かりやすくするためObjectタグのみ書きましたが、実際には前後のHTML(XSL)も同時に取得してます。
また、画像については、沢山の中からチョイスして表示させる為、プレロードの仕組みだと全ての画像を読み込む必要があるので実用的ではありません。
ただ、この方法は知らなかったので別の場面で使えるかと思いますが・・・。