我一直致力于为我未来的项目编写代码库。我一直在努力的功能之一是暂停功能。到目前为止,对于报告脚本运行的错误,即使在暂停时间长达10秒,我也没有任何问题。这主要是为了让恶意用户忙碌,当你设置很长时间时效果很好。我想知道是否有任何我应该注意的错误? 这是代码......
pause = function(a) {
var b = new Date().getTime();
e = false;
function wait() {
d=10;
for(i=0;i<d;i++) {
d++;
var c = new Date().getTime();
if(c-b>=a) {
e = true;
break;
}
if(d>1000000) {
break;
}
}
}
wait();
if(e==false) {
pause(a-(new Date().getTime()-b));
}};
答案 0 :(得分:4)
你永远曾想在Javascript中做这类事情。正如您所注意到的,浏览器会抱怨您的脚本耗时太长。此外,这将消耗比必要的能量更多的能量,这对于电池容量有限的移动设备非常重要。
相反,请使用标准setTimeout()
函数以便稍后运行代码。
答案 1 :(得分:0)
Javascript已经有办法做到这一点。使用setTimeout()并在继续操作时将其传递给匿名函数。第二个参数是以毫秒为单位的延迟。
示例:
setTimeout(function(){alert('hello');},2000);
答案 2 :(得分:0)
正如我在迄今为止的评论中所说的,尝试在javascript中运行半无限循环绝不是一个好主意。
以下是一些需要注意的问题:
基本上,您要做的是对用户浏览器的拒绝服务攻击。您可能不喜欢他们对您的网页所做的事情,但攻击他们似乎不合适。更好的方法是以适合浏览器的方式阻止访问您的页面,而不是以浏览器攻击的方式。
建议:
如果您真正尝试做的只是在某些情况下使您的页面无用(您仍然没有解释为什么要尝试这样做或者什么条件会触发您希望这样做),那么它可能会最好不要试图杀死浏览器,使页面无用或信息丰富。你可以通过以下方式做到: