У меня следующая ситуация :
Мне нужно загрузить несколько внешних изображений, размещенных сторонними разработчиками, с примером URL, как это;
http://externaldomain.com/img/a/b/someimage.jpg
Однако загрузка одного изображения может стоить до 15 секунд! (без ума, я знаю), поэтому я думаю загрузить эти изображения асинхронно, используя jQuery. Вот где я застрял, я попробовал следующие 2 метода:
var img = new Image();
$(img).load(function () {
containerForImg.removeClass('loading-image').append(this);
})
.attr('src', imgFullPath)
.attr('alt', imgAltText);
Как я думаю, приведенный выше код не будет загружать изображение асинхронно, потому что запрос продолжает ожидать все изображения, прежде чем он будет завершен.
Второй метод - :
Я создал универсальный обработчик (.ASHX) для загрузки изображения с использованием класса WebRequest
и WebResponse
из .NET и вызова этого обработчика с помощью метода $.ajax()
jQuery, но это приводит к тому, что экран перестает отвечать, если их много изображения. Я могу подтвердить, что запрос к обработчику является асинхронным, однако мне любопытно, является ли вызов внутри обработчика асинхронным или нет.
Вывод: оба метода не дают мне лучшего результата. Итак, каков наилучший способ асинхронной загрузки внешнего изображения? Я не ограничен только использованием jQuery, чистое решение ASP.NET отлично.