我有以下情况:
我需要加载由 3rd 方托管的几个外部图像,例如这样的 url;
http://externaldomain.com/img/a/b/someimage.jpg
但是加载 1 张图片可能需要 15 秒!(我知道很疯狂),所以我正在考虑使用 jQuery 异步加载这些图像。这是我卡住的地方,我尝试了以下两种方法:
var img = new Image();
$(img).load(function () {
containerForImg.removeClass('loading-image').append(this);
})
.attr('src', imgFullPath)
.attr('alt', imgAltText);
我认为上面的代码不会异步加载图像,因为请求在完成之前一直等待所有图像。
第二种方法是:
我创建了一个通用处理程序 (.ASHX) 来使用WebRequest
和WebResponse
类从 .NET 下载图像,并使用 jQuery 方法调用此处理程序$.ajax()
,但是如果有很多图像,这会导致屏幕无响应。我可以确认对处理程序的请求是异步的,但是我很好奇处理程序内部的调用是否是异步的。
结论是,这两种方法都没有给我最好的结果。那么,异步加载外部图像的最佳方法是什么?我不仅限于使用 jQuery,纯粹的 ASP.NET 解决方案就可以了。