Google chrome 限制http请求google chrome扩展

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

事实证明,我前面问题的答案不起作用。问题是我正在用请求重载服务器。这个过程需要一个节流阀,以便后续的请求产生一点减速。这是有问题的代码。需要计时器或设置间隔的重要代码段是以警报“Profile Rejected”(配置文件已拒绝)开头的代码段,尽管可以将两者的速度降低。有什么建议吗

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);
}

这样,您将一次处理一个配置文件,并提供延迟。

那么有什么问题吗?你试过计时器,但没用?有什么问题吗?你试过计时器,但没用?这是一个非常优雅的解决方案。这是一个非常优雅的解决方案。