Home  >  Article  >  Web Front-end  >  JavaScript timer SetTimeout regularly refreshes the window and closes the window (the code is super simple)

JavaScript timer SetTimeout regularly refreshes the window and closes the window (the code is super simple)

高洛峰
高洛峰Original
2017-01-10 09:26:081311browse

No more nonsense, I will just post the code for you.

// 每隔五秒定时刷新当前窗口
setTimeout("self.location.reload();",5000);
//js 定时关闭窗口(ie和FF中测试过)
//6秒后自动关闭当前窗口
setTimeout("window.opener=null;window.close()",6000);

The following is an introduction to the use of javascript timers

Using timers to implement delayed execution or repeated execution of JavaScript. The window object provides two methods to implement timers. The effects are

window.setTimeout() and window.setInterval respectively. The former can make a piece of code run after a specified time; while the latter can make a piece of code run once every specified time. Their prototypes are as follows: window.setTimeout(expression,milliseconds); window.setInterval(expression,milliseconds); where expression can be a string or a function name. When it is a string, you can take parameters, but the function name cannot take parameters. If you take parameters, the function will be executed directly without delay.

function hello (){
console.log('I am dada'); //alert('I am ' + name);
//setTimeout(arguments.callee,2000);
} setTimeout(hello,5000);//5秒后执行 setTimeout('hello()',3000);//3秒后执行
setTimeout(hello(),8000);//立刻执行

The first case is the function name, but it cannot take parameters

The second case is a string, executable js code, which can take parameters, but The performance is worse than the function name

The third method is to call the function and execute it directly

So if you want to pass the parameters, but don’t want to call it in the form of a string, you can write a method yourself :

function _hello(_name){
return function(){
hello2(_name);
}
}
setTimeout(_hello(name),7000);//立刻执行

1. setTimeout

setTimeout(function(){
//要执行的代码
},200);

means that after 200ms, the timer code is added to the queue and waits for the JavaScript process to become idle. The code is executed only after

2. setInterval

1. The above code refers to creating a timer to execute the code every 200ms
2. When using setInterval, only if The timer code is added to the queue when there are no other code instances of the timer (in the queue), quoting the statement in JavaScript Advanced Programming, Second Edition (that is: when the previous timer code is executed, immediately following The first timer code will be added to the queue, waiting for execution, and the subsequent timer code will not be added to the queue)

You will encounter when using setInterval to perform repeated behaviors. Got a question:

When the timer code execution time (if it takes 600ms to execute) exceeds the specified interval (here is 200ms), then some timer codes will be skipped (that is, the following The timer code will not be added to the queue). After the previous timer code is executed, the timer code in the queue is executed immediately, and there is no interval between the code executions of each timer. At this time, you need to use chained setTimeout.

The advantage of this is: after the code to be executed by the previous timer is executed and waits for 200ms, a new timer is created and the timer code is added to the queue for execution: The timer code will not be skipped; there can be intervals between code executions between timers (according to your own settings).

setTimeout(function(){
//要执行的代码
setTimeout(arguments.callee,2000);
},2000);
setInterval(function(){
//要执行的代码
},200);

This article will introduce so much to you. I hope it will be helpful to you. At the same time, thank you for your support of the PHP Chinese website.

For more JavaScript timer SetTimeout scheduled refresh windows and closing windows (the code is super simple), please pay attention to the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn