我有一个 Request Pooler,它可能会给你一个良好的开端。[自从这个答案被接受后,我已经停用了 pooler,转而使用更完整的“AJAX Helper”——链接已更新。]
我不确定它会做你想做的一切(尽管听起来可能很接近)。它很旧,但它有效:
郁闷的新闻 DP_AJAX
它支持具有超时/重试、每个请求处理程序的多个同时请求,占用空间非常小,并且可以轻松地与其他代码组合。
您创建一个池(告诉它允许多少个同时请求),然后向它抛出请求。完成后,他们会调用您指定的任何处理程序。
一个小而完整的使用示例:
// The handler function
function AddUp(Num1, Num2, Num3) {
alert(Num1 + Num2 + Num3);
};
// Instantiate the Pool
myRequestPool = new DP_RequestPool(4);
// Start the Interval
myRequestPool.startInterval(100);
// Create the Request
myRequest = new DP_Request(
"GET",
"http://www.mysite.com/Add.htm",
{"FirstNum" : 5, "SecondNum" : 10},
AddUp,
[7,13]);
// Add the request to the queue
myRequestPool.addRequest(myRequest);
它是开源的 - 随意砍/折叠/纺锤或破坏它,以满足您的内心需求。
吉姆戴维斯