以下代码完成了我需要的大部分内容。每次将新图像加载到页面上时都会运行该功能。然而,这已经为同一个xml文件创建了100个服务器请求..这是不好的,说实话 那么如何重新排列这个函数,所以只使用了1个xml请求(即使我将1个元素拉出i = id,整个xml文件仍然被缓存)所以我知道我可以使用它。
function loadImages(i){
i++;
$.ajax
({
type: "GET",
url: "sites.xml",
dataType: "xml",
async: "true",
success: function(xml)
{
// these are the id's of images i do not want to load
var a = [2,3,4,5,6,7,8,9,19,18,60,61,50,49,79,78,81,82,80,70,90,91,92,93,94];
if ( a.indexOf( 2 ) !== -1 ) { // do this if not an 1 of the id's above
var img = $(xml).find('image[id=' + i + ']'),
id = img.attr('id'),
url = img.find('url').text();
$('#loading'+i).html('<img src="'+url+'" onLoad="loadImages('+i+')" />').hide();
$('#loading'+i).fadeIn();
}
}
});
}
答案 0 :(得分:0)
您可能想要使用AjaxQ
插件。
浏览器对打开的连接数施加限制 服务器。所有不合适的请求 在极限即将等待 无论如何都要跑。 IE浏览器 不会打开超过2个连接 默认情况下每台服务器一次。 Mozilla Firefox,Opera和Safari都有 每台服务器限制为8个连接。
有时必须避免充斥服务器 同时进行AJAX请求。
- Web应用程序需要AJAX请求按设计逐个运行, 订单很重要。