私は、Web ページ上にかなりの数の画像を作成 (および削除) する継続的なサイクルを含む Web アプリケーションを作成しています。各画像はサーバーによって動的に生成されます。
var img = document.createElement("img");
img.src = "http://mydomain.com/myImageServer?param=blah";
場合によっては、これらのイメージの一部は、ダウンロードが完了する前にその有用性を失います。その時点で、それらを DOM から削除します。
問題は、それらの画像が DOM から削除された後も、ブラウザーがそれらの画像をダウンロードし続けることです。ダウンロードを待っている新しい画像があるため、ボトルネックが発生しますが、最初に古い不要な画像のダウンロードが完了するまで待たなければなりません。
不要な画像のダウンロードを中止したいと思います。明らかな解決策は、AJAX 経由でバイナリ イメージ データを要求することです (AJAX 要求は中止される可能性があるため)。ダウンロードが完了したら、img.src を設定します。
// Code sample uses jQuery, but jQuery is not a necessity
var img = document.createElement("img");
var xhr = $.ajax({
url: "http://mydomain.com/myImageServer?param=blah",
context: img,
success: ImageLoadedCallback
});
function ImageLoadedCallback(data)
{
this.src = data;
}
function DoSomethingElse()
{
if (condition)
xhr.abort();
}
しかし、問題は、この行が期待どおりに機能しないことです。
this.src = data;
私は高低を検索しました。AJAX経由で送信されたバイナリ画像データに画像ソースを設定する方法はありませんか?