Programmation asynchrone Java scirp, développement frontal de base

Maître des armes Java 2021-09-15 07:47:10
programmation asynchrone java scirp veloppement


  • L'exécution de la tâche dans le fil principal est vide,Oui.Event QueueLire la fonction correspondante,Aller au thread principal pour exécuter.

  • Le processus ci - dessus se répète sans cesse,C'est ce qu'on dit souvent.Event Loop(Cycle des événements).

Les tâches asynchrones sont généralement divisées en tâches macro et micro,La différence est que:

  • macro-task(Tâche macro)Y compris le code global script,setTimeout,setInterval,setImmediate(node.js,?MessageChannel postMessage? requestAnimationFrame I/OFonctionnement UIRendre.

? ? ? ? En général JS Tâche de rappel résultant de la communication entre le moteur et l'environnement hôte,Par exemple, setTimeout,setInterval C'est le navigateur qui a chronométré,Où le temps d'exécution de la fonction de rappel nécessite une notification du navigateur à JS Moteur,Module réseau, I/OLes rappels de communication traités sont également.Contient setTimeout,setInterval,DOMRappel de l'événement,ajaxRappel après la fin de la demande,Total script Code,setImmediate.

  • Microtâche(micro-task):En général, les callbacks générés par l'exécution d'une macro - tâche dans un thread,Par exemple: Promise,process.nextTick,Object.observe(Abandonné), MutationObserver(DOMÉcouter),C'est tout. JS Le moteur lui - même peut écouter un rappel .

Ci - dessus, nous avons appris la classification des tâches macro et micro , Alors pourquoi les diviser en tâches macro et micro ? Principalement parce qu'il est ajouté à une file d'attente de tâches dans une boucle d'événements avec un mécanisme différent .

Dans le cycle des événements, Les tâches sont généralement commencées par des tâches macro (JS Exécution du chargement du Code ), Pendant l'exécution de la tâche macro , De nouvelles tâches macro et micro peuvent être générées , À ce stade, la tâche macro (Par exemple:ajaxRappel) Sera ajouté à la fin de la file d'attente des tâches en attendant l'exécution du mécanisme de boucle d'événements , Les micro - tâches sont ajoutées à l'avant de la file d'attente des tâches courante , C'est aussi l'exécution du mécanisme de boucle d'événements d'attente .

Où le même type de macro - tâche ou de micro - tâche est trié par ordre de rappel , Et les tâches de différents types de tâches auront une certaine priorité , Différencier par différents types de tâches

JavascirpProgrammation asynchrone,Développement de la base frontale_Front End

Au total, c'est ,Javascript Pendant l'exécution du Code , Synchrone avant asynchrone , Pendant l'exécution asynchrone , Micro - tâche avant macro - tâche .

Ordre général des tâches : Tâche de macro - exécution avancée (Il peut y en avoir plusieurs.)-> Microtâche -> Tâche macro -> Microtâche ···

? Cet exemple comprend les bases js Le mécanisme d'exécution est compris


console.log(1);
setTimeout(function() {
console.log(2);
})
var promise = new Promise(function(resolve, reject) {
console.log(3);
resolve();
})
promise.then(function() {
console.log(4);
})
console.log(5);

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.

Dans l'exemple,setTimeout Et Promise Appelé la source de la tâche , Les fonctions de rappel enregistrées à partir de différentes sources de tâches sont placées dans différentes files d'attente de tâches .

Avec le concept de macro - tâche et de micro - tâche ,C'est... JS Quel est l'ordre d'exécution de ? Macro ou micro - tâche d'abord ?

Dans le premier cycle d'événements ,JavaScript Le moteur va tout script Le Code est exécuté comme une macro - tâche ,Une fois l'exécution terminée, Vérifiez si la micro - tâche est trouvée dans ce cycle , Lisez à partir de la file d'attente des micro - tâches pour exécuter toutes les micro - tâches si elles existent , Lire à nouveau l'exécution des tâches dans la file d'attente des tâches pour la macro - tâche ,Et effectuer toutes les micro - tâches,Comme ça..JS L'ordre d'exécution de est la macro - tâche dans chaque cycle d'événements -Microtâche.

  • Dans l'exemple ci - dessus,Premier cycle d'événements, L'ensemble du Code est entré dans le thread principal en tant que macro - tâche pour effectuer la première sortie 1,RencontrePromise,new PromiseExécution directe,Produits3,,Et puis5.

  • Rencontre Promise,Oui. then La fonction est placée dans la micro - tâche de la micro - tâche Event QueueMoyenne.

  • J'ai rencontré setTimeout , Attendre que le temps spécifié soit écoulé pour mettre la fonction de rappel dans la file d'attente des tâches de macro .

  • Une fois le cycle complet de l'événement terminé , Pour détecter la présence d'une tâche dans la file d'attente de la micro - tâche , Exécution en présence .

Enfin

Les connaissances de base sont nécessaires au début , Si vous êtes dans les bases de ce renversement , Même si tu joues encore 6,webpack、git、node Il n'y a rien de bon à apprendre , Parce que l'autre personne ne te donnera plus l'occasion de te montrer , Ne manquez jamais votre entreprise agréable à cause de la Fondation . Les bases du Front End sont complexes et nombreuses , Ce n'est pas comprendre okC'est, Il y en a qui doivent vraiment se souvenir . Bien sûr qu'on est des vaches xIngénieur de première ligne, Il n'est pas nécessaire de mémoriser un point de connaissance comme un mot anglais tous les jours , Tant que vous faites plus attention au résumé , Il suffit de brosser les questions avant l'entrevue .

 CodeChinaProjet Open Source:【Analyse des questions d'entrevue de première ligne de Dachang+Résumé de base notes d'étude+Projets réels en action+Dernière vidéo d'explication】

版权声明
本文为[Maître des armes Java]所创,转载请带上原文链接,感谢
https://qdmana.com/2021/09/20210914163704609U.html

  1. Progressive react source code analysis - Implementation of ref API
  2. Webpack5 learning -- code compression
  3. Front and back end data interaction (V) -- what is Axios?
  4. Knowledge points related to react routing
  5. On demand introduction of react antd + customized theme
  6. GPG management submission signature verification
  7. [babylonjs] babylonjs practice (XII) -- drawing lane lines
  8. After brushing the 12 sliding windows, you can tear the front end by hand
  9. Vue fruit bookkeeping - money.vue component
  10. Propriétés et méthodes des objets Array en javascript!,Pseudo - classes et pseudo - éléments pour CSS
  11. JS contains the function code
  12. Typescript record (I)
  13. Take you to learn more about nginx basic login authentication: generating passwords using OpenSSL
  14. Is componentization obsolete? Introduction to micro front end architecture
  15. Leetcode day 18
  16. Simple code to achieve a, 1W + people see the Mid Autumn Festival blessing
  17. Design pattern -- agent pattern
  18. Vs Code theme recommendation in 2021
  19. Mon expérience réelle dans l'externalisation Android à Huawei, préparation de l'entrevue de développement Android
  20. J'ai les questions et les réponses d'entrevue de développement d'octets de rêve et Tencent double offer, Android
  21. Fatal Magic: countless sacrifices under gorgeous magic
  22. Mon expérience d'entrevue principale est partagée avec l'expérience d'apprentissage
  23. Mon expérience d'entrevue Android de Tencent partage, plugin Android
  24. Partage de questions d'entrevue Java à double saut d'octets non - premier cycle, un article vous apprend à gérer l'entrevue réseau informatique,
  25. Questions d'entrevue CSS (notes)
  26. Syntaxe de base de la classe
  27. Héritage de classe
  28. Mise en œuvre simple de 30 minutes pour un filtrage rapide des chaînes de tableau 10W +.
  29. Vue 3 tri des documents démarrage rapide
  30. Collection de code de base JavaScript (1)
  31. National secret nginx Container actual Fighting
  32. Quelques lignes de css pour rendre votre page tridimensionnelle
  33. C'est super détaillé, de "finir" ce 300 pages de 1000 questions d'entrevue,
  34. Take you in-depth understanding of nginx basic login authentication (including all configuration steps and in-depth analysis)
  35. Après avoir mangé, assurez - vous d'augmenter votre salaire de 5K et de rester debout tard pour trier les questions d'entrevue Java de millet.
  36. Résumé des questions d'entrevue pour les entreprises Internet nationales de première ligne, qui doivent être posées lors de l'entrevue d'emploi Java de la grande usine en 2021,
  37. "L'amour à première vue", la nouvelle BMW 2 coupe réelle, vous êtes surpris?
  38. Questions d'entrevue de test avancé de Dachang, liste des compétences de base de l'entrevue Java,
  39. Tableau 2D trié par un champ
  40. JS est souvent utilisé pour déterminer si l'objet est vide
  41. Contrôle de l'arbre en vue converti en style de table
  42. CSS3 animation flash Effect
  43. Discuter des propriétés de la file d'attente pour l'événement bloc
  44. Node around USModules
  45. Webpack - - Premier aperçu (concept de base)
  46. Mise en œuvre du cadre de base mvvm par JS natif
  47. Calculer les propriétés par rapport aux auditeurs, etc.
  48. Configuration standard dockerfile et docker-composer.yml
  49. Collection de questions d'entrevue HTML
  50. Conteneur, définir la largeur et la hauteur ne répond pas?
  51. Introduction et syntaxe des objets (mise à jour à long terme)
  52. Bubble Mart invests in cat galaxy, which is a vertical e-commerce platform around the quadratic element
  53. Exigences et dépendances dans package-lock.json
  54. Mouvement tridimensionnel de la terre, du ciel et de la lune basé sur three.js
  55. Compréhension et analyse de l'objet de base JS
  56. Simple use of status data management (context, mobx, Redux)
  57. Simulated drumming
  58. Array method
  59. Performance optimization issue 03 - HTTP request optimization
  60. Talk about some moves used by vue3.0 in the project - External skill chapter (I)