这是我的代码:
我试图在 google chrome 控制台中运行它,它运行了大约 50 秒,然后发送错误 ERR_INSUFFICIENT_RESOURCES。我不确定它为什么这样做,我需要一些帮助。
var ID = prompt("What ID would you like to go down from?");
function PM(){
$.get("http://www.roblox.com/Groups/Group.aspx?gid=" + ID,function(webpage) {
if ( $(webpage).find("#ctl00_cphRoblox_rbxGroupFundsPane_GroupFunds").length) {
var funds = $(webpage).find("#ctl00_cphRoblox_rbxGroupFundsPane_GroupFunds");
var robux = $(funds).find(".robux").text();
var tix = $(funds).find(".tickets").text();
var owner = $(webpage).find("#ctl00_cphRoblox_OwnershipPanel");
var owned = $(owner).find("a");
var ownerhref = owned.text();
if (ownerhref == "No One!") {
if (robux != 0 || tix != 0) {
console.log("Found a good group. ID is " + groupId + ", It has " + robux + " robux, and " + tix + " tickets!");
}
}
}
ID = ID - 1;
setInterval(PM, 300);
})
}
PM();
最佳答案
浏览器资源不足,因为 PM
函数正在设置将在无限循环中递归调用自身的间隔。 setInterval
function将重复调用给定的函数(在本例中,每 300 毫秒)。您可以改为使用 setTimeout
,这将等待 300 毫秒,然后执行一次给定的函数。
为了详细解释您的案例,以下是正在发生的事情。
-
PM
被称为 - 进行了 AJAX 调用,回调设置了对
PM
的新调用每 300 毫秒 - 这些调用中的每一个都从步骤 1 开始重复该过程。因此,每隔 300 毫秒,就会设置一个新的间隔来调用
PM
。 再次每 300 毫秒一次。
这看起来像这样,无穷无尽。
PM | PM..300ms..PM..300ms..PM... | | | | | PM..300ms..PM..300ms..PM... | PM..300ms..PM..300ms..PM... | | | PM..300ms..PM..300ms..PM... PM..300ms..PM..300ms..PM...
关于javascript - 此代码平稳运行了大约 50 秒,然后开始发送垃圾邮件 ERR_INSUFFICIENT_RESOURCES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33154611/