Maison > interface Web > js tutoriel > Le timer JavaScript SetTimeout actualise régulièrement la fenêtre et ferme la fenêtre (le code est super simple)

Le timer JavaScript SetTimeout actualise régulièrement la fenêtre et ferme la fenêtre (le code est super simple)

高洛峰
Libérer: 2017-01-10 09:26:08
original
1323 Les gens l'ont consulté

Plus de bêtises, laissez-moi juste vous poster le code.

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

Ce qui suit est une introduction à l'utilisation des minuteries javascript

En utilisant des minuteries pour implémenter une exécution retardée ou une exécution répétée de JavaScript, l'objet window en fournit deux. méthodes pour y parvenir. Les effets des minuteries sont respectivement

window.setTimeout() et window.setInterval. Le premier peut exécuter un morceau de code après une heure spécifiée ; tandis que le second peut exécuter un morceau de code une fois à chaque heure spécifiée. Leurs prototypes sont les suivants : window.setTimeout(expression,milliseconds) ; window.setInterval(expression,milliseconds) où expression peut être une chaîne ou un nom de fonction. Lorsqu'il s'agit d'une chaîne, vous pouvez prendre des paramètres, mais le nom de la fonction ne peut pas prendre de paramètres. Si vous prenez des paramètres, la fonction sera exécutée directement sans délai.

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);//立刻执行
Copier après la connexion

Le premier cas est un nom de fonction, mais il ne peut pas prendre de paramètres

Le deuxième cas est une chaîne, un code js exécutable, qui peut prendre des paramètres, mais les performances sont pires que le nom de la fonction

La troisième méthode consiste à appeler la fonction et à l'exécuter directement

Donc, si vous voulez transmettre des paramètres, mais que vous ne voulez pas l'appeler sous la forme d'une chaîne, vous pouvez l'écrire vous-même Une méthode :

function _hello(_name){
return function(){
hello2(_name);
}
}
setTimeout(_hello(name),7000);//立刻执行
Copier après la connexion

1. setTimeout

setTimeout(function(){
//要执行的代码
},200);
Copier après la connexion

signifie qu'après 200 ms, le code du minuteur est ajouté à la file d'attente, Attendez que le processus JavaScript soit inactif avant que le code soit exécuté

2. setInterval

1. Le code ci-dessus signifie créer une minuterie pour exécuter le code toutes les 200 ms
2. Lors de l'utilisation de setInterval, le code de la minuterie est ajouté à la file d'attente uniquement s'il n'y a pas d'autres instances de cette minuterie (dans la file d'attente), pour citer JavaScript Advanced Programming 2nd Edition instruction de livre (c'est-à-dire : actuellement une minuterie. Lorsque le code est exécuté, le premier code de minuterie qui suit sera ajouté à la file d'attente et attendra son exécution, et les codes de minuterie suivants ne seront pas ajoutés à la file d'attente)

Utilisez setInterval pour exécuter à plusieurs reprises Vous rencontrerez un problème en faisant cela :

Lorsque le temps d'exécution du code du minuteur (s'il prend 600 ms) dépasse l'intervalle spécifié (ici 200 ms), alors certains codes de minuterie seront ignorés (c'est-à-dire que les codes de minuterie suivants ne seront pas ajoutés à la file d'attente). Une fois le code de minuterie précédent exécuté, le code de minuterie dans la file d'attente est exécuté immédiatement et il n'y a aucun intervalle entre les exécutions de code entre les minuteries. . À ce stade, vous devez utiliser setTimeout en chaîne.

L'avantage de ceci est : une fois le code à exécuter par le timer précédent exécuté et attendu 200 ms, un nouveau timer est créé et le code du timer est ajouté à la file d'attente pour exécution : le code du timer ne sera pas ignoré ; il peut y avoir des intervalles entre les exécutions de code entre les timers (selon vos propres paramètres).

setTimeout(function(){
//要执行的代码
setTimeout(arguments.callee,2000);
},2000);
setInterval(function(){
//要执行的代码
},200);
Copier après la connexion

Cet article va vous présenter tout cela, j'espère qu'il vous sera utile, et merci pour votre soutien au site PHP chinois.

Pour plus d'articles sur la fenêtre d'actualisation régulière de la minuterie JavaScript SetTimeout et la fermeture de la fenêtre (le code est super simple), veuillez faire attention au site Web PHP chinois !

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal