国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison interface Web js tutoriel Logiciel local d'abord

Logiciel local d'abord

Dec 29, 2024 am 03:02 AM

Local First Software

état

à mesure que le Web se développe, le nombre d'éléments avec lesquels les utilisateurs interagissent et affichent augmente. Ces éléments modifient l'écran que l'utilisateur voit. Les éléments qui modifient l’écran peuvent être définis comme des ??états??.

Par exemple, dans le cas d'une page Web informative telle qu'une page de destination, le ? statut ? est une information à afficher.

Ensuite, dans le cas de GitHub, il y a diverses informations telles que mes informations, les informations de mon référentiel, le nombre d'étoiles, etc. Puisque l'écran affiché à l'utilisateur varie en fonction de cela, tout cela peut être considéré comme un ? statut ?. '.

Comme exemple plus complexe, vous pouvez prendre un exemple comme Figma. Tous les graphiques à l'écran, tels que les points, les lignes et les surfaces, sont tous des ??états??. De plus, les fonctions de collaboration nécessitent de partager le statut de personnes autres que vous-même.

état et données

Les états sont tous des données. Les informations sur l'utilisateur, les informations personnalisées par l'utilisateur, etc. sont toutes des données stockées quelque part, et ces données deviennent rapidement l'état de l'écran que l'utilisateur voit. Habituellement, ces données sont stockées sur le serveur comme source unique de vérité. Si vous vous connectez à un site Web, il sera enregistré sous la forme d'une seule ligne dans le tableau des utilisateurs sur le serveur de ce site.

Les données sont trop loin

Le Web est compliqué de nos jours. Il existe d'innombrables boutons et de nombreuses données affichées sur un seul écran. Il existe de nombreuses informations dont l’actualité est importante. Chaque fois que ces états changent, les données doivent faire des allers-retours vers le serveur pour garantir la cohérence. Si vous avez seulement besoin de recevoir la ? page suivante ? par minute, comme un document, ce n’est pas un gros problème. Cependant, dans des cas comme Notion où les utilisateurs modifient continuellement les données, cela devient un gros problème. Si je devais le charger à chaque fois que je définis quelque chose comme une fonctionnalité sur la page, je serais contrarié

.

Mise à jour optimiste

Pensez à cliquer sur un bouton J'aime sur un site de réseau social comme Instagram. Lorsque je clique sur J'aime, je dois accéder au serveur et enregistrer les informations indiquant que j'ai aimé la publication, augmenter le nombre de mentions J'aime pour la publication d'un, puis obtenir les mentions J'aime pour la publication en cours et me les montrer.

Mais sur Instagram, on clique sur les likes et le nombre augmente avec l'animation en 0,001 seconde.

Cela est possible en mettant à jour l'état du client avant même que les informations n'atteignent le serveur. L'idée est de mettre à jour le statut du client, en supposant que les données similaires seront bien enregistrées sur le serveur. Dans la plupart des cas, la communication avec le serveur réussira, nous jugeons donc avec optimisme que c'est un succès.

Bien s?r, il existe des cas où la requête envoyée au serveur échoue, il faut donc veiller à restaurer l'état du client en cas d'échec.

Réactivité plut?t que cohérence

Il est très raisonnable d'afficher de manière optimale si j'ai cliqué sur le bouton J'aime ou non. Mais lorsque je clique, quelqu'un d'autre clique également, donc le nombre de likes peut avoir augmenté d'un ou plusieurs. Comment gérer cela ?

Ce problème peut être facilement résolu en ignorant légèrement la cohérence des données. Si la publication est une publication populaire, il est impossible que le nombre de likes n’augmente pas pendant que je consulte la publication. C'est juste la politique du logiciel. Pour une réponse rapide, une certaine cohérence des données est sacrifiée

.

Théorème du CAP

Dans les études sur les systèmes distribués, il existe la théorie CAP. Cette théorie stipule que lors de la configuration d'un système distribué, seuls deux des C, A et P peuvent être utilisés.

C signifie Cohérence. Quel que soit le n?ud à partir duquel vous lisez les données, vous devez lire les mêmes données

.

A est la disponibilité, ce qui signifie si toutes les demandes peuvent recevoir une réponse même si un n?ud meurt.

P est la tolérance de partition, c'est-à-dire le nombre de n?uds qui peuvent fonctionner lorsque la connexion réseau est perdue et si elle peut être restaurée après la connexion réseau.

Selon cette théorie, à terme, trois systèmes sont possibles : CA, AP et CP.

Californie

En théorie, un système distribué peut choisir CA, mais nous avons décidé de ne pas appeler un système distribué qui ne fonctionne pas lorsque la connexion réseau est perdue.

Au final, s'il s'agit d'un système distribué, P doit être garanti.

PA

Disponibilité plut?t que cohérence

Lorsque plusieurs n?uds sont déconnectés du réseau, la valeur des n?uds connectés est diminuée même si tous les n?uds ne sont pas d'accord sur le dernier état de la valeur. Par conséquent, les dernières données peuvent ne pas correspondre entre les n?uds déconnectés. Cependant, les utilisateurs peuvent continuer à utiliser le service comme s'ils recevaient les dernières données.

Un exemple représentatif est celui des médias sociaux. Même s'il est peu probable que cela se produise dans la réalité, supposons que la connexion réseau entre les n?uds d'Instagram en Europe et en Asie soit perdue. Il est normal que le nombre de followers, de likes, etc. vus par les utilisateurs accédant depuis l'Asie et les utilisateurs accédant depuis l'Europe soit légèrement différent pendant cette période de perturbation. Mais la fonction fonctionnera toujours.

CP

Cohérence sur la disponibilité

Il s'agit d'un système qui ne répond pas aux demandes des utilisateurs dans les situations où les dernières données ne peuvent pas être garanties en cas de panne de réseau.

Les exemples sont généralement liés à l'argent (transactions). Disons qu’il y a une déconnexion du réseau dans une situation où il ne reste qu’une seule chambre d’h?tel bénéficiant d’une réduction de 50 %. Dans le système AP, les réservations sont faites en supposant que les deux chambres seront disponibles, il existe donc une possibilité de surréservation. Le système CP n'est pas s?r de l'état à jour de ces données, il reporte donc ou rejette la demande.

Théorème PACELC

La théorie CAP est en fait une théorie sur la partition. Si une partition a eu lieu, vous devez choisir A ou C.

Mais en fait, dans des circonstances normales, la partition ne se produit pas. La théorie qui peut être appliquée dans de telles situations est la théorie PACELC.

si (P) alors (AC) sinon (LC)

En d'autres termes, dans le cas de partition, considérez AC, sinon, considérez LC.

LC

Latence et cohérence

Dans des circonstances normales, le système fait un compromis entre latence et cohérence. C'est une théorie grandiose, mais en fait, c'est comme une vérité dans toute l'ingénierie informatique

.

Penser à un compromis, c'est voir un certain degré de compromis entre ces deux normes.

La latence peut être intuitivement déterminée de lente à rapide, mais il est difficile de savoir intuitivement ce qu'est la cohérence.

Forte cohérence

Une forte cohérence peut être ressentie rien qu'en entendant le nom. Quel que soit le n?ud auquel vous accédez, vous devez voir les mêmes données. En d'autres termes, la cohérence n'est possible que lorsque tous les n?uds ont les mêmes données.

Je pense que vous pouvez penser à une banque.

Cohérence éventuelle

C'est une cohérence appelée

Un jour, elle sera cohérente. Cela signifie que tous les clients ne verront pas la même valeur en même temps pour une certaine modification, mais qu'ils finiront par voir la même valeur une fois la synchronisation terminée.

Par conséquent, en fonction des caractéristiques du logiciel, il est décidé de veiller à la cohérence tout en sacrifiant la latence ou de sacrifier la cohérence pour une réponse rapide.

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

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.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

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)

Sujets chauds

Tutoriel PHP
1502
276
Comment faire une demande HTTP dans Node.js? Comment faire une demande HTTP dans Node.js? Jul 13, 2025 am 02:18 AM

Il existe trois fa?ons courantes d'initier des demandes HTTP dans Node.js: utilisez des modules intégrés, Axios et Node-Fetch. 1. Utilisez le module HTTP / HTTPS intégré sans dépendances, ce qui convient aux scénarios de base, mais nécessite un traitement manuel de la couture des données et de la surveillance des erreurs, tels que l'utilisation de https.get () pour obtenir des données ou envoyer des demandes de post via .write (); 2.AXIOS est une bibliothèque tierce basée sur la promesse. Il a une syntaxe concise et des fonctions puissantes, prend en charge l'async / attendre, la conversion JSON automatique, l'intercepteur, etc. Il est recommandé de simplifier les opérations de demande asynchrones; 3.Node-Fetch fournit un style similaire à la récupération du navigateur, basé sur la promesse et la syntaxe simple

Types de données JavaScript: référence primitive vs Types de données JavaScript: référence primitive vs Jul 13, 2025 am 02:43 AM

Les types de données JavaScript sont divisés en types primitifs et types de référence. Les types primitifs incluent la cha?ne, le nombre, le booléen, le nul, un non défini et le symbole. Les valeurs sont immuables et les copies sont copiées lors de l'attribution des valeurs, de sorte qu'elles ne se affectent pas; Les types de référence tels que les objets, les tableaux et les fonctions stockent les adresses de mémoire, et les variables pointant vers le même objet s'afferchent mutuellement. Le typeof et l'instance de OFF peuvent être utilisés pour déterminer les types, mais prêtent attention aux problèmes historiques de typeofnull. Comprendre ces deux types de différences peut aider à écrire un code plus stable et fiable.

Objet JavaScript Time, quelqu'un construit un site Web Eactexe, plus rapide sur Google Chrome, etc. Objet JavaScript Time, quelqu'un construit un site Web Eactexe, plus rapide sur Google Chrome, etc. Jul 08, 2025 pm 02:27 PM

Bonjour, développeurs JavaScript! Bienvenue dans JavaScript News de cette semaine! Cette semaine, nous nous concentrerons sur: le différend de marque d'Oracle avec Deno, les nouveaux objets Time JavaScript sont pris en charge par les navigateurs, les mises à jour Google Chrome et certains outils de développeurs puissants. Commen?ons! Le différend de marque d'Oracle avec la tentative de Deno Oracle d'enregistrer une marque "JavaScript" a provoqué la controverse. Ryan Dahl, le créateur de Node.js et Deno, a déposé une pétition pour annuler la marque, et il pense que JavaScript est un niveau ouvert et ne devrait pas être utilisé par Oracle

Gestion des promesses: cha?nage, gestion des erreurs et combinateurs de promesses en javascript Gestion des promesses: cha?nage, gestion des erreurs et combinateurs de promesses en javascript Jul 08, 2025 am 02:40 AM

La promesse est le mécanisme central pour gérer les opérations asynchrones en JavaScript. Comprendre les appels de cha?ne, la gestion des erreurs et les combinants est la clé pour ma?triser leurs applications. 1. L'appel de la cha?ne renvoie une nouvelle promesse à travers. Puis () pour réaliser la concaténation des processus asynchrones. Chaque .then () re?oit le résultat précédent et peut renvoyer une valeur ou une promesse; 2. La gestion des erreurs doit utiliser .catch () pour attraper des exceptions pour éviter les défaillances silencieuses, et peut renvoyer la valeur par défaut dans Catch pour continuer le processus; 3. Combinateurs tels que promesse.all () (réussi avec succès uniquement après tout succès), promesse.race () (le premier achèvement est retourné) et promesse.allsetTled () (en attente de toutes les achèvements)

Qu'est-ce que l'API Cache et comment est-elle utilisée avec les travailleurs du service? Qu'est-ce que l'API Cache et comment est-elle utilisée avec les travailleurs du service? Jul 08, 2025 am 02:43 AM

Cacheapi est un outil fourni par le navigateur pour mettre en cache les demandes de réseau, qui est souvent utilisée en conjonction avec travailleur de service pour améliorer les performances du site Web et l'expérience hors ligne. 1. Il permet aux développeurs de stocker manuellement des ressources telles que des scripts, des feuilles de style, des photos, etc.; 2. Il peut faire correspondre les réponses du cache en fonction des demandes; 3. Il prend en charge la suppression des caches spécifiques ou la nettoyage du cache entier; 4. Il peut mettre en ?uvre des stratégies de priorité de cache ou de priorité de réseau grace à l'écoute des événements Fetch; 5. Il est souvent utilisé pour le support hors ligne, accélérez la vitesse d'accès répétée, préchargement des ressources clés et du contenu de mise à jour des antécédents; 6. Lorsque vous l'utilisez, vous devez faire attention au contr?le de la version du cache, aux restrictions de stockage et à la différence entre le mécanisme de mise en cache HTTP.

JS Roundup: une plongée profonde dans la boucle d'événement JavaScript JS Roundup: une plongée profonde dans la boucle d'événement JavaScript Jul 08, 2025 am 02:24 AM

La boucle d'événement de JavaScript gère les opérations asynchrones en coordonnant les piles d'appels, les webapis et les files d'attente de taches. 1. La pile d'appels exécute du code synchrone, et lors de la rencontre de taches asynchrones, il est remis à WebAPI pour le traitement; 2. Une fois que le WebAPI a terminé la tache en arrière-plan, il met le rappel dans la file d'attente correspondante (macro tache ou micro tache); 3. La boucle d'événement vérifie si la pile d'appels est vide. S'il est vide, le rappel est retiré de la file d'attente et poussé dans la pile d'appels pour l'exécution; 4. Micro taches (comme Promise. puis) ??prendre la priorité sur les taches macro (telles que Settimeout); 5. Comprendre la boucle d'événements permet d'éviter de bloquer le thread principal et d'optimiser l'ordre d'exécution du code.

Comprendre l'événement bouillonnant et capturer dans les événements JavaScript DOM Comprendre l'événement bouillonnant et capturer dans les événements JavaScript DOM Jul 08, 2025 am 02:36 AM

Les bulles d'événements se propagent de l'élément cible vers l'extérieur vers le n?ud d'ancêtre, tandis que la capture d'événements se propage de la couche externe vers l'intérieur vers l'élément cible. 1. événements Bubbles: Après avoir cliqué sur l'élément enfant, l'événement déclenche l'auditeur de l'élément parent vers le haut. Par exemple, après avoir cliqué sur le bouton, il sortira d'abord cliqué sur l'enfant, puis parent. 2. Capture d'événement: définissez le troisième paramètre sur true, afin que l'auditeur soit exécuté dans l'étape de capture, tels que le déclenchement de l'écouteur de capture de l'élément parent avant de cliquer sur le bouton. 3. Les utilisations pratiques incluent la gestion unifiée des événements d'éléments enfants, le prétraitement d'interception et l'optimisation des performances. 4. Le flux d'événements DOM est divisé en trois étapes: capture, cible et bulle, et l'écouteur par défaut est exécuté dans l'étape de la bulle.

Un tour d'horizon des fonctions d'ordre supérieur au-delà de la carte et du filtre Un tour d'horizon des fonctions d'ordre supérieur au-delà de la carte et du filtre Jul 10, 2025 am 11:41 AM

Dans les tableaux JavaScript, en plus de la carte et du filtre, il existe d'autres méthodes puissantes et rarement utilisées. 1. La réduction peut non seulement résumer, mais également compter, se regrouper, aplatir les tableaux et construire de nouvelles structures; 2. Find et FindIndex sont utilisés pour trouver des éléments ou des index individuels; 3.Il et tout sont utilisés pour déterminer si les conditions existent ou que toutes les personnes se rencontrent; 4.Sort peut être trié mais changera le tableau d'origine; 5. Faites attention à la copie du tableau lorsque vous l'utilisez pour éviter les effets secondaires. Ces méthodes rendent le code plus concis et efficace.

See all articles