Я пишу веб-приложение, которое включает в себя непрерывный цикл создания (и удаления) значительного числа изображений на веб-странице. Каждое изображение динамически генерируется сервером.
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?