Maison interface Web js tutoriel Comment setTimeout définit l'heure sur 0

Comment setTimeout définit l'heure sur 0

Mar 14, 2018 am 09:07 AM
settimeout 如何 设置

Cet article vous présente principalement le contenu pertinent sur la définition de l'heure setTimeout sur 0. setTimeout() est une méthode appartenant à window, mais nous omettons tous le nom du conteneur de niveau supérieur de window. Ceci est utilisé pour définir une heure. . Lorsqu'il arrivera, une méthode spécifiée sera exécutée. L'article suivant vous présente principalement les informations pertinentes sur la définition du délai setTimeout sur 0. Les amis dans le besoin peuvent s'y référer.

1. Apéritif, qu'est-ce que setTimeout

Tout d'abord, jetons un coup d'œil à l'explication de setTimeout sur w3school

La méthode setTimeout(fn,millisec) est utilisée pour appeler une fonction ou une expression calculée après un nombre spécifié de millisecondes.

C'est très simple. setTimeout() n'exécute fn qu'une seule fois. Le moment de son exécution dépend du nombre de millisecondes défini par le deuxième paramètre millisec, c'est pourquoi beaucoup de gens ont l'habitude de l'appeler retard. . Ce n'est rien de plus que de retarder un certain temps avant d'exécuter le code à l'intérieur.


setTimeout(function(){
 console.log('我是setTimeout');
}, 1000);
Copier après la connexion

Dans des circonstances normales, je suis setTimeout. Cette phrase ne sera pas affichée immédiatement mais sera affichée dans la console du navigateur après 1000 millisecondes.

2. Plat principal, js est monothread

OK, regardons un exemple. cet exemple ?


setTimeout(function(){
 console.log(1);
}, 0);
console.log(2);
console.log(3);
Copier après la connexion

À la surprise de certains, les résultats étaient de 2, 3, 1. Cela ne semble pas suivre la routine. Il attend évidemment 0 milliseconde, c'est-à-dire qu'il sort directement sans attendre. Pourquoi 1 sortie à la fin ?

Cela nécessite de clarifier un concept très important : js est mono-threading signifie que toutes les tâches doivent être mises en file d'attente et la tâche suivante ne sera exécutée que lorsque la tâche précédente sera terminée. Si la tâche précédente prend beaucoup de temps, la tâche suivante devra attendre.

En fait, c'est facile à comprendre. Tout comme tout le monde va au supermarché pour acheter des choses, tous ceux qui achètent des choses doivent faire la queue à la caisse. Dans des circonstances normales, chaque caisse ne peut que le faire. servir une personne à la fois. Le client quitte le service. Ce n'est qu'après le départ de ce client que le client suivant peut être servi.

Le noyau du navigateur est multi-thread. Ils coopèrent entre eux sous le contrôle du noyau pour maintenir la synchronisation. Un navigateur implémente au moins trois threads résidents : le thread du moteur javascript, le thread de rendu de l'interface graphique, les événements du navigateur. Fil de déclenchement.

  • Le moteur JavaScript est basé sur une exécution monothread basée sur des événements. Le moteur JS attend l'arrivée des tâches dans la file d'attente des tâches et les traite ensuite. un thread JS à tout moment.

  • Le thread de rendu de l'interface graphique est responsable du rendu de l'interface du navigateur. Lorsque l'interface doit être repeinte (Repaint) ou qu'une redistribution est provoquée par une opération, ce fil le sera. exécuté. Cependant, il convient de noter que le thread de rendu GUI et le moteur JS s'excluent mutuellement lorsque le moteur JS est exécuté, le thread GUI sera suspendu et les mises à jour de l'interface graphique seront enregistrées dans une file d'attente et exécutées immédiatement lorsque le moteur JS sera exécuté. inactif.

  • Fil de déclenchement d'événement Lorsqu'un événement est déclenché, le fil ajoute l'événement à la fin de la file d'attente en attente et attend son traitement par le moteur JS. Ces événements peuvent provenir du bloc de code actuellement exécuté par le moteur JavaScript tel que setTimeOut, ou d'autres threads du noyau du navigateur tels que des clics de souris, des requêtes asynchrones AJAX, etc. Cependant, en raison de la relation monothread de JS, tous ces événements doivent être mis en file d'attente pour être traités par le moteur JS. (Le code asynchrone sera exécuté lorsqu'aucun code synchrone n'est exécuté dans le thread)

En fait, lorsque l'exécution du code js rencontre setTimeout(fn,millisec), le fn sera La fonction est placé dans la file d'attente des tâches Lorsque le thread du moteur js est inactif et atteint le temps spécifié en millisecondes, fn sera placé dans le thread du moteur js pour l'exécution.

setTimeout(fn,0) signifie spécifier une tâche à exécuter dans le premier temps d'inactivité disponible du thread principal, c'est-à-dire à exécuter le plus tôt possible. Il ajoute un événement à la fin de la « file d'attente des tâches », il ne sera donc exécuté que lorsque la tâche de synchronisation et les événements existants dans la « file d'attente des tâches » auront été traités.

La norme HTML5 stipule que la valeur minimale (intervalle le plus court) du deuxième paramètre de setTimeout() ne doit pas être inférieure à 4 millisecondes. Si elle est inférieure à cette valeur, elle augmentera automatiquement. Avant cela, les anciens navigateurs fixaient l'intervalle minimum à 10 millisecondes. De plus, ces modifications du DOM (en particulier celles impliquant un nouveau rendu de page) ne sont généralement pas exécutées immédiatement, mais toutes les 16 millisecondes. À l'heure actuelle, l'effet de l'utilisation de requestAnimationFrame() est meilleur que celui de setTimeout() .

Il convient de noter que setTimeout() insère uniquement l'événement dans la "file d'attente des tâches". Le thread principal n'exécutera pas la fonction de rappel qu'il spécifie tant que le code actuel (pile d'exécution) n'est pas terminé. Si le code actuel prend beaucoup de temps, cela peut prendre beaucoup de temps, il n'y a donc aucun moyen de garantir que la fonction de rappel sera exécutée à l'heure spécifiée par setTimeout().

3. Dessert, les merveilleuses utilisations de setTimeout

En fait, setTimeout a de merveilleuses utilisations, en voici quelques-unes.

Fonction anti-rebond

让一个函数在一定间隔内没有被调用时,才开始执行被调用方法。比如当你在使用 google 搜索内容的时候,有些关键词输入到一半,谷歌会展示一个可选列表,根据你当前输入的内容作出的一个猜测联想。需要监听文字改变,每一次改变都会调用一次回调函数,现在需要的一种实现是在用户停止键盘事件一段时间后,去发送一个请求。


var debounce = function(method, context) {
 clearTimeout(method.tId);
 method.tId = setTimeout(function(){
  method.call(context);
 },100);
}
Copier après la connexion

轮训任务

js中可以使用setInterval开启轮询,但是这种存在一个问题就是执行间隔往往就不是你希望的间隔时间。

比如有个轮询任务间隔是100ms,但是执行方法的时间需要450ms,那么在200ms、300ms、400ms本来是计划中执行任务的时间,浏览器发现第一个还未执行完,那么就会放弃2、3、4次的任务执行,并且在500ms之后再次执行任务,这样的话,其实再次执行的间隔就只有50ms。使用setTimeout构造轮询能保证每次轮询的间隔。


setTimeout(function () {
 console.log('我被调用了');
 setTimeout(arguments.callee, 100);
}, 100);
Copier après la connexion

延迟js引擎的调用


var p = document.createElement('p');
p.innerHTML = '我是一个p';
p.setAttribute('style', 'width:200px; height:200px;background-color:#f00; ');
document.body.appendChild(p);
setTimeout(function() {
 console.log('我被调用了');
}, 1000);
Copier après la connexion

虽然setTimeout有一些妙用,但是他确实是在宏观任务队列中新增任务了,所以万万不能滥用啊。

相关推荐:

JS中setInterval和setTimeout实例分析

JavaScript中setTimeout()的使用详解

javascript函数setTimeout带参数用法实例详解

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment fixer l'heure prévue de publication des ouvrages sur Douyin ? Comment définit-il la durée de la vidéo ? Comment fixer l'heure prévue de publication des ouvrages sur Douyin ? Comment définit-il la durée de la vidéo ? Mar 27, 2024 pm 06:11 PM

Publier des œuvres sur Douyin peut attirer plus d'attention et de likes, mais il peut parfois nous être difficile de publier des œuvres en temps réel. Dans ce cas, nous pouvons utiliser la fonction de publication programmée de Douyin. La fonction de publication planifiée de Douyin permet aux utilisateurs de publier automatiquement des œuvres à des heures planifiées, ce qui permet de mieux planifier le plan de publication et d'augmenter l'exposition et l'influence des œuvres. 1. Comment fixer l'heure prévue de publication des ouvrages sur Douyin ? Pour définir une heure de sortie programmée, accédez d'abord à la page d'accueil personnelle de Douyin, recherchez le bouton « + » dans le coin supérieur droit et cliquez pour accéder à la page de sortie. Il y a une icône d'horloge dans le coin inférieur droit de la page de publication. Cliquez pour accéder à l'interface de publication planifiée. Dans l'interface, vous pouvez choisir le type d'œuvre que vous souhaitez publier, notamment des vidéos courtes, des vidéos longues et des diffusions en direct. Ensuite, vous devez définir quand votre travail sera publié. TikTok fournit

Configurer le chinois avec VSCode : le guide complet Configurer le chinois avec VSCode : le guide complet Mar 25, 2024 am 11:18 AM

Configuration de VSCode en chinois : un guide complet Dans le développement de logiciels, Visual Studio Code (VSCode en abrégé) est un environnement de développement intégré couramment utilisé. Pour les développeurs qui utilisent le chinois, la configuration de VSCode sur l'interface chinoise peut améliorer l'efficacité du travail. Cet article vous fournira un guide complet, détaillant comment définir VSCode sur une interface chinoise et fournissant des exemples de code spécifiques. Étape 1 : Téléchargez et installez le pack de langue. Après avoir ouvert VSCode, cliquez sur la gauche.

Où est définie la balise Douyin ? Comment peut-on l'étiqueter pour pouvoir le pousser avec précision ? Où est définie la balise Douyin ? Comment peut-on l'étiqueter pour pouvoir le pousser avec précision ? Mar 27, 2024 am 11:01 AM

En tant que l'une des plateformes de vidéos courtes les plus populaires au monde, Douyin permet à chacun de devenir créateur et de partager chaque instant de la vie. Pour les utilisateurs de Douyin, les balises sont une fonction très importante. Elles peuvent aider les utilisateurs à mieux classer et récupérer le contenu, et permettent également à la plate-forme de transmettre plus précisément le contenu approprié aux utilisateurs. Alors, où sont définies les balises Douyin ? Cet article expliquera en détail comment configurer et utiliser les balises sur Douyin. 1. Où est définie la balise Douyin ? L'utilisation de balises sur Douyin peut aider les utilisateurs à mieux classer et étiqueter leurs œuvres, permettant ainsi aux autres utilisateurs de les trouver et de les suivre plus facilement. La méthode pour définir l'étiquette est la suivante : 1. Ouvrez l'application Douyin et connectez-vous à votre compte. 2. Cliquez sur le signe "+" en bas de l'écran et sélectionnez le bouton "Publier". 3.

Comment définir un fond d'écran sur WallpaperEngine Comment définir un fond d'écran sur WallpaperEngine Mar 23, 2024 pm 09:06 PM

Wallpaperengine est un logiciel de fond d'écran très populaire, alors comment définir un fond d'écran ? Les utilisateurs doivent d'abord démarrer ce logiciel, puis cliquer sur un fond d'écran. Après avoir double-cliqué sur le fond d'écran, les paramètres seront automatiquement effectués. Cette introduction à la configuration du fond d'écran vous indiquera la méthode spécifique. . Venez jeter un oeil. Comment définir le fond d'écran sur WallpaperEngine ? Réponse : Double-cliquez sur le fond d'écran pour le définir automatiquement. Méthodes spécifiques : 1. Tout d'abord, cliquez sur le logiciel dans Steam pour le démarrer. 2. Choisissez de démarrer WallpaperEngine. 3. Après être entré dans l'interface, sélectionnez un fond d'écran que vous aimez et cliquez sur Confirmer pour l'utiliser. 4. Il y aura quelques boutons de réglage sur le côté droit, qui pourront être utilisés selon les besoins

Comment configurer la publication programmée sur Weibo_Tutoriel sur la configuration de la publication programmée sur Weibo Comment configurer la publication programmée sur Weibo_Tutoriel sur la configuration de la publication programmée sur Weibo Mar 29, 2024 pm 03:51 PM

1. Ouvrez le client Weibo, cliquez sur les trois petits points sur la page d'édition, puis cliquez sur Publication programmée. 2. Après avoir cliqué sur la publication programmée, il y aura une option d'heure sur le côté droit de l'heure de publication, modifiez l'article et cliquez sur les mots jaunes dans le coin inférieur droit pour publier régulièrement. 3. La version mobile de Weibo ne prend actuellement pas en charge la publication programmée. Cette fonction ne peut être utilisée que sur le client PC !

Le mode Ne pas déranger ne fonctionne pas sur iPhone : correctif Le mode Ne pas déranger ne fonctionne pas sur iPhone : correctif Apr 24, 2024 pm 04:50 PM

Même répondre à des appels en mode Ne pas déranger peut être une expérience très ennuyeuse. Comme son nom l'indique, le mode Ne pas déranger désactive toutes les notifications d'appels entrants et les alertes provenant d'e-mails, de messages, etc. Vous pouvez suivre ces ensembles de solutions pour résoudre ce problème. Correctif 1 – Activer le mode de mise au point Activez le mode de mise au point sur votre téléphone. Étape 1 – Faites glisser votre doigt depuis le haut pour accéder au Centre de contrôle. Étape 2 – Ensuite, activez le « Mode Focus » sur votre téléphone. Le mode Focus active le mode Ne pas déranger sur votre téléphone. Aucune alerte d’appel entrant n’apparaîtra sur votre téléphone. Correctif 2 – Modifier les paramètres du mode de mise au point S'il y a des problèmes dans les paramètres du mode de mise au point, vous devez les résoudre. Étape 1 – Ouvrez la fenêtre des paramètres de votre iPhone. Étape 2 – Ensuite, activez les paramètres du mode Focus

Où définir les recommandations et les sélections Douyin Où définir les recommandations et les sélections Douyin Mar 27, 2024 pm 05:06 PM

Où sont les recommandations et les sélections sur Douyin ? Dans les courtes vidéos Douyin, il existe deux catégories : sélection et recommandation. La plupart des utilisateurs ne savent pas comment configurer les recommandations et les sélections. Vient ensuite le didacticiel Douyin que l'éditeur propose aux utilisateurs. recommandations et tutoriels sur les méthodes de réglage sélectionnées, les utilisateurs intéressés viennent y jeter un œil ! Tutoriel d'utilisation de Douyin Où configurer les recommandations et les sélections de Douyin 1. Ouvrez d'abord l'application vidéo courte Douyin et entrez dans la page principale, cliquez sur la zone [Moi] dans le coin inférieur droit et sélectionnez [trois lignes horizontales] dans le coin supérieur droit ; 2. Puis à droite La barre de fonctions s'agrandit, faites glisser la page pour sélectionner [Paramètres] en bas ; 3. Ensuite, sur la page de fonction des paramètres, recherchez le service [Gestion des informations personnelles] 4. Enfin, passez au personnel ; page de gestion des informations, diapositive [Recommandations de contenu personnalisées] 】Le bouton au dos peut être défini.

Comment régler le compte à rebours pour récupérer des billets à Damai Comment régler le compte à rebours pour récupérer des billets à Damai Apr 01, 2024 pm 07:01 PM

Lors de l'achat de billets sur Damai.com, afin de garantir que l'heure d'achat du billet peut être comprise avec précision, les utilisateurs peuvent définir une horloge flottante pour récupérer les billets. La méthode de réglage détaillée est ci-dessous, apprenons ensemble. Comment lier l'horloge flottante à Damai 1. Cliquez pour ouvrir l'application d'horloge flottante sur votre téléphone pour accéder à l'interface, puis cliquez sur l'emplacement où le contrôle de vente flash est défini, comme indiqué dans la figure ci-dessous : 2. Après être arrivé à la page d'ajout de nouveaux enregistrements, cliquez sur Damai.com Copiez la page du lien d'achat de billet copiée. 3. Ensuite, définissez l'heure de la vente flash et l'heure de notification ci-dessous, activez le bouton de commutation derrière [Enregistrer dans le calendrier] et cliquez sur [Enregistrer] ci-dessous. 4. Cliquez pour activer [Compte à rebours], comme indiqué dans la figure ci-dessous : 5. Lorsque l'heure du rappel arrive, cliquez sur le bouton [Démarrer l'image dans l'image] ci-dessous. 6. Quand vient le moment d’acheter le billet

See all articles