我们有以下AJAX节流器。这是为了能够在一个页面上执行许多(20+)ajax请求,而不会在第X个请求花费60秒后超时。
然而,由于这些请求在Javascript队列中等待处理,当用户尝试加载新页面时,开发者工具会在新页面的NET区域显示响应。出于隐私原因,我们的应用程序设置了一个检查以防止这种行为。这是浏览器的正常行为吗?还是某种错误或我做错了什么?
RequestThrottler: {
maximumConcurrentRequests: 3, //default to 3
requestQueue: new Array(),
numberOfRequestCurrentlyProcessing: 0,
addRequestToQueue: function (currentRequest) {
var self = this;
self.requestQueue.push(currentRequest);
if (self.numberOfRequestCurrentlyProcessing < self.maximumConcurrentRequests) { self.sendNextRequest(); }
},
sendNextRequest: function () {
var self = this;
if (self.numberOfRequestCurrentlyProcessing >= self.maximumConcurrentRequests) { return; }
if (self.requestQueue.length === 0) { return; }
var currentRequest = self.requestQueue.pop();
self.numberOfRequestCurrentlyProcessing++;
AJAX.SendAjaxRequest(currentRequest.url, currentRequest.httpMethod,
function(data){
self.numberOfRequestCurrentlyProcessing--;
currentRequest.onSuccessCallback(data);
self.sendNextRequest();
},
function(){
self.numberOfRequestCurrentlyProcessing--;
currentRequest.onErrorCallback();
self.sendNextRequest();
});
},
sendUpdateRequest: function (currentRequest) {
var self = this;
self.addRequestToQueue(currentRequest);
}
}
然而,由于这些请求在Javascript队列中等待处理,当用户尝试加载新页面时,开发者工具会在新页面的NET区域显示响应。出于隐私原因,我们的应用程序设置了一个检查以防止这种行为。这是浏览器的正常行为吗?还是某种错误或我做错了什么?