我现在无法测试这个,所以我问:
如果这个脚本忙于从一个数组加载图像(比如几MB),并且用户碰巧执行了一些需要其中一个尚未加载的图像的行为,它的加载会被延迟吗?或者浏览器可以发出并行请求吗?
function preloadImg() { var args = simplePreload.arguments; document.imageArray = new Array(args.length); for(var i=0; i<args.length; i++) { document.imageArray[i] = new Image; document.imageArray[i].src = args[i]; } }
答案 0 :(得分:1)
浏览器只会在同一个域上并行运行这么多请求。数量因浏览器而异。因此,您通常希望在最后看到其他请求排队。
在某种程度上解决这个问题的一种方法是将预载图像放在与其他图像不同的域上,因为浏览器将并行加载来自不同域的请求。
因此,如果您要从domaina.com预先加载8个并行最多的图像,您仍然可以在domainb.com上同时加载命令时可能需要的图像。这可以帮助您解决并行加载问题。
我想你仍然想在几个浏览器中测试你的特定问题,但我希望这会有所帮助。