Javascript后台运行代码

时间:2013-08-04 22:19:17

标签: javascript background-process

我可以设置某种window.onThis();函数,以便我的代码在后台循环运行吗?

window.onload = function() {while(true) {console.log("Blah")}}

这会使页面无法响应。建议的方法是什么?

我觉得有些事情在我脑海里浮现。也许我正在以错误的方式看待它。

2 个答案:

答案 0 :(得分:2)

Javascript一次只能运行一个线程,因此当它尽可能快地运行console.log ("Blah")时,它无法执行任何其他操作。

更好的方法是使用setInterval,例如

var a  = setInterval(function () { console.log("blah"); }, 1000);
// Set the function to be called every 1000 milliseconds

//(optional) some time later
clearInterval(a);
// Stop the function from being called every second.

一般来说,繁忙的无限循环(while (true) { ... })永远不是一个好主意。

请参阅https://developer.mozilla.org/en-US/docs/Web/API/window.setInterval

答案 1 :(得分:0)

它使页面无响应,因为您创建了一个无限循环。 while循环条件将始终为true,因此循环将永远不会停止运行。

我认为您正在寻找setInterval(),请参阅此处https://developer.mozilla.org/en-US/docs/Web/API/window.setInterval