从Chrome控制台重复执行ajax请求时“资源不足错误”

时间:2015-04-05 02:23:44

标签: javascript getjson

我有这个javascript代码,可以在google chrome控制台中运行。它不断检查json格式的响应。如果响应中的任何地方BestPrice等于max_price,那么它将使用某些API购买它。我遇到的问题是在运行它后大约10秒我得到了ERR_INSUFFICIENT_RESOURCES'。

我想这是来自太多的请求?我需要它尽可能快地循环,所以如果它不是即时的,是否有一定的请求限制?

代码:

function snipebot(page, max_page, max_price){
    $.getJSON('http://www.roblox.com/catalog/json?browse.aspx?Subcategory=2&Keyword=&CurrencyType=0&pxMin=0&pxMax=0&SortType=2&SortAggregation=0&SortCurrency=0&LegendExpanded=true&Category=2&PageNumber=' + page, function(data){
        $.each(data, function(index, item){
            if (item['BestPrice'] <= max_price){
                $.get('http://www.roblox.com/Item.aspx?id=' + item['AssetId'], function(data){
                    var purchaseData = $($(data).find(".PurchaseButton")[0]).data();
                    if (purchaseData['expectedPrice'] <= item['BestPrice']){
                        $.post('/API/Item.ashx?rqtype=purchase&productID=' + purchaseData['productId'] + '&expectedCurrency=1&expectedPrice=' + purchaseData['expectedPrice'] + '&expectedSellerId=' + purchaseData['expectedSellerId'] + '&userAssetID=' + purchaseData['userassetId'], function(){
                            console.log('[' + item['BestPrice'] + '] @' + new Date().toTimeString())    
                        });
                    } else {
                        console.log("Detected purchase.");
                    }
                });
            };
            setTimeout(function(){
                snipebot(page + 1 > max_page ? 1 : page + 1, max_page, max_price);
            },100);
            console.log("!checked");
        });
    });
};
snipebot(1, 4, 50);

1 个答案:

答案 0 :(得分:1)

当您致电snipebot时,它会发出请求,并查看您正在使用的网址,它会返回一个数组。然后,对于数组中的每个项目,您将产生另一个snipebot调用。这些调用中的每一个都会产生更多snipebot个调用,依此类推。所以,是的,ERR_INSUFFICIENT_RESOURCES错误并不令人惊讶。