AJAXを使用する必要がある場合...
onloadハンドラーが適切な選択ではなかったユースケースに遭遇しました。私の場合、JavaScript経由で印刷するとき。したがって、これには実際にAJAXスタイルを使用する2つのオプションがあります。
解決策1
Base64画像データとREST画像サービスを使用します。独自のウェブサービスがある場合は、Base64エンコーディングで画像を提供するJSP / PHP RESTスクリプトを追加できます。さて、それはどのように役立ちますか?画像エンコーディングのクールな新しい構文に出くわしました:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhE..."/>
したがって、Ajaxを使用してImage Base64データをロードし、完了時にBase64データ文字列をイメージに構築できます。とても楽しい :)。画像のエンコードには、このサイトhttp://www.freeformatter.com/base64-encoder.htmlを使用することをお勧めします。
$.ajax({
url : 'BASE64_IMAGE_REST_URL',
processData : false,
}).always(function(b64data){
$("#IMAGE_ID").attr("src", "data:image/png;base64,"+b64data);
});
Solution2:
ブラウザをだましてキャッシュを使用させます。これにより、リソースがブラウザーのキャッシュにあるときに、素晴らしいfadeIn()が得られます。
var url = 'IMAGE_URL';
$.ajax({
url : url,
cache: true,
processData : false,
}).always(function(){
$("#IMAGE_ID").attr("src", url).fadeIn();
});
ただし、どちらの方法にも欠点があります。最初の方法は最新のブラウザでのみ機能します。2つ目はパフォーマンスに問題があり、キャッシュの使用方法を前提としています。
乾杯、