【发布时间】:2010-01-13 22:00:18
【问题描述】:
我正在开发代理服务器检查器,并使用以下代码以大约 5 秒的间隔使用 setTimeout 函数启动请求;
function check() {
var url = document.getElementById('url').value;
var proxys = document.getElementById('proxys').value.replace(/\n/g,',');
var proxys = proxys.split(",");
for (proxy in proxys) {
var proxytimeout = proxy*5000;
t = setTimeout(doRequest, proxytimeout, url, proxys[proxy]);
}
}
但是一旦他们开始我就无法阻止他们!
function stopcheck() {
clearTimeout(t);
}
修复或更好的方法将更受欢迎。
感谢 Stack Overflow 社区!
【问题讨论】:
-
你确定你真的调用了
stopcheck()并检查你是否在全局范围内定义了t? -
作为更新;该函数确实会停止最后的 settimeout。
-
Ben,您正在覆盖
t引用。只有最后一个setTimeout会被t引用。 -
该代码还有一些其他问题;我已经更新了我的答案,把他们叫出来。
标签: javascript for-loop settimeout