所以我创建了一个图像幻灯片播放器,假设一次播放1000个图像。
而是要求浏览器预加载全部1000,我有一个批处理机制,试图分批预加载。
如果我将批量预加载设置为25张图像,那么在网络选项卡中,我会看到弹出25个网络请求并正在加载图像(并且已成功完成200张)。
我也有阈值设置,所以当 x 剩余的图像数量时,它将开始预加载下一个25.我将此设置为15。
玩家将每1000毫秒逐步浏览每个图像。最初的25个图像请求需要1秒才能完成(即所有图像)。随后的25批将需要2秒才能完成(现在预装了50张图像)。
现在,当我们预先加载了125个图像并且接下来的25个批次被调用时,我们看到IE说它需要5秒来决定发出请求(它在网络选项卡中显示为红色)。
因此,当它被要求发出请求并且实际发出请求时,这是5秒。完成请求并加载图像需要不到1.5秒。
所以我们在这里看到似乎存在某种速率限制,或者我们还需要关注IE拒绝提出5s请求的其他事项吗?
我们正在使用EDGE仿真。
下面是图像预加载。因此imageObj
是作为图像网址的域对象。
var imageObj = nextBatch[i];
var tempImage = new Image();
tempImage.src = imageObj.Url
imageObj.image = tempImage;
此image
对象附加到域对象(imageObj
)。
这是在setTimeout(fn(){}, 0)
中完成的,以使其异步。
我读了这个article,看看是否有任何未完成的内容。但我最初没有看到任何东西。