Google chrome 限制http请求google chrome扩展
事实证明,我前面问题的答案不起作用。问题是我正在用请求重载服务器。这个过程需要一个节流阀,以便后续的请求产生一点减速。这是有问题的代码。需要计时器或设置间隔的重要代码段是以警报“Profile Rejected”(配置文件已拒绝)开头的代码段,尽管可以将两者的速度降低。有什么建议吗Google chrome 限制http请求google chrome扩展,google-chrome,google-chrome-extension,request,throttling,Google Chrome,Google Chrome Extension,Request,Throttling,事实证明,我前面问题的答案不起作用。问题是我正在用请求重载服务器。这个过程需要一个节流阀,以便后续的请求产生一点减速。这是有问题的代码。需要计时器或设置间隔的重要代码段是以警报“Profile Rejected”(配置文件已拒绝)开头的代码段,尽管可以将两者的速度降低。有什么建议吗 if (greetThisOne==true && !bGreeted) { //alert ("Requesting Message Page"); console.log="Mes
if (greetThisOne==true && !bGreeted)
{
//alert ("Requesting Message Page");
console.log="Message Page Requested";
chrome.extension.sendRequest({cmd: "openMessage", url: messageLink, keyWordsFound: keyWordList, greeted: bGreeted});
}
else
{
//alert("Profile Rejected");
console.log="Profile Rejected";
chrome.extension.sendRequest({cmd: "profileRejected", url: messageLink, keyWordsFound: keyWordList, greeted: bGreeted});
}
您需要在后台页面中实现一些队列。例如:
var rejectedProfiles = [];
processRejectedProfiles();
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if(request.cmd == "profileRejected") {
//add to the end of queue
rejectedProfiles.push({url: request.url, other: request.parameters});
}
sendResponse({});
});
function processRejectedProfiles() {
if(rejectedProfiles.length > 0) {
//get the oldest element in queue
var profile = rejectedProfiles.shift();
//process profile
...
}
//process next entry in the queue in 3 seconds
setTimeout(processRejectedProfiles, 3000);
}
这样,您将一次处理一个配置文件,并提供延迟。您需要在后台页面中实现一些队列。例如:
var rejectedProfiles = [];
processRejectedProfiles();
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if(request.cmd == "profileRejected") {
//add to the end of queue
rejectedProfiles.push({url: request.url, other: request.parameters});
}
sendResponse({});
});
function processRejectedProfiles() {
if(rejectedProfiles.length > 0) {
//get the oldest element in queue
var profile = rejectedProfiles.shift();
//process profile
...
}
//process next entry in the queue in 3 seconds
setTimeout(processRejectedProfiles, 3000);
}
这样,您将一次处理一个配置文件,并提供延迟。那么有什么问题吗?你试过计时器,但没用?有什么问题吗?你试过计时器,但没用?这是一个非常优雅的解决方案。这是一个非常优雅的解决方案。