Zustand
W?hrend sich das Web weiterentwickelt, nimmt die Anzahl der Elemente zu, mit denen Benutzer interagieren und die sie anzeigen. Diese Elemente ver?ndern den Bildschirm, den der Benutzer sieht. Dinge, die den Bildschirm ver?ndern, k?nnen als ?Zust?nde“ definiert werden.
Beispielsweise ist ?Status“ im Fall einer Informationswebseite wie einer Landingpage eine anzuzeigende Information.
Als n?chstes gibt es im Fall von GitHub verschiedene Informationen wie meine Informationen, meine Repository-Informationen, Anzahl der Sterne usw. Da der dem Benutzer angezeigte Bildschirm je nachdem variiert, k?nnen alle diese als ?Status“ betrachtet werden '.
Als komplexeres Beispiel k?nnen Sie ein Beispiel wie Figma nehmen. Alle Grafiken auf dem Bildschirm, wie Punkte, Linien und Fl?chen, sind allesamt ?Zust?nde“. Darüber hinaus erfordern Kollaborationsfunktionen, dass Sie den Status anderer Personen als Ihnen selbst teilen.
Status und Daten
Zust?nde sind alle Daten. Informationen über den Benutzer, benutzerspezifische Informationen usw. sind alle Daten, die irgendwo gespeichert werden, und diese Daten werden bald zum Status des Bildschirms, den der Benutzer sieht. Normalerweise werden diese Daten als Single Source of Truth auf dem Server gespeichert. Wenn Sie sich bei einer Website anmelden, wird dies als einzelne Zeile in der Benutzertabelle auf dem Server dieser Website gespeichert.
Daten sind zu weit entfernt
Das Web ist heutzutage kompliziert. Es gibt unz?hlige Schaltfl?chen und viele Daten werden auf einem Bildschirm angezeigt. Es gibt viele Informationen, deren Aktualit?t wichtig ist. Immer wenn sich diese Zust?nde ?ndern, müssen die Daten zum Server hin und her übertragen werden, um die Konsistenz sicherzustellen. Wenn Sie nur die ?n?chste Seite“ wie ein Dokument pro Minute erhalten müssen, ist das kein gro?es Problem. In F?llen wie Notion, in denen Benutzer Daten kontinuierlich ?ndern, wird dies jedoch zu einem gro?en Problem. Wenn ich es jedes Mal laden müsste, wenn ich so etwas wie eine Funktion auf der Seite einstelle, w?re ich ver?rgert
Optimistisches Update
Denken Sie daran, auf einer Social-Media-Seite wie Instagram auf die Schaltfl?che ?Gef?llt mir“ zu klicken. Wenn ich auf ?Gef?llt mir“ klicke, muss ich zum Server gehen und die Information speichern, dass mir der Beitrag gefallen hat, die Anzahl der ?Gef?llt mir“-Angaben für den Beitrag um eins erh?hen und dann die ?Gef?llt mir“-Angaben für den aktuellen Beitrag abrufen und sie mir zeigen.
Aber auf Instagram werden Likes angeklickt und die Anzahl steigt zusammen mit der Animation in 0,001 Sekunden.
Dies ist m?glich, indem der Status des Clients aktualisiert wird, bevor die Informationen überhaupt den Server erreichen. Die Idee besteht darin, den Status des Clients zu aktualisieren, vorausgesetzt, dass die entsprechenden Daten gut auf dem Server aufgezeichnet werden. In den meisten F?llen wird die Kommunikation mit dem Server erfolgreich sein, daher gehen wir optimistisch davon aus, dass dies ein Erfolg war.
Natürlich gibt es F?lle, in denen die an den Server gesendete Anfrage fehlschl?gt. Daher muss darauf geachtet werden, den Client-Status im Fehlerfall wiederherzustellen.
Reaktionsf?higkeit geht vor Konsistenz
Es ist sehr sinnvoll, optimal anzuzeigen, ob ich auf den ?Gef?llt mir“-Button geklickt habe oder nicht. Aber wenn ich klicke, klickt auch jemand anderes, sodass sich die Anzahl der Likes m?glicherweise um eins oder mehrere erh?ht hat
Dies l?sst sich leicht l?sen, indem man die Datenkonsistenz leicht ignoriert. Wenn es sich bei dem Beitrag um einen beliebten Beitrag handelt, ist die Anzahl der ?Gef?llt mir“-Angaben w?hrend der Zeit, in der ich den Beitrag angesehen habe, auf keinen Fall gestiegen. Dies ist lediglich die Richtlinie der Software. Für eine schnelle Reaktion wird ein Teil der Datenkonsistenz geopfertCAP-Theorem
In verteilten Systemstudien gibt es die CAP-Theorie. Diese Theorie besagt, dass bei der Konfiguration eines verteilten Systems nur zwei von C, A und P verwendet werden k?nnen.
C steht für Konsistenz. Egal von welchem ??Knoten Sie Daten lesen, Sie müssen dieselben Daten lesen
A ist Verfügbarkeit, was bedeutet, ob auf alle Anfragen reagiert werden kann, auch wenn ein Knoten ausf?llt.
P ist Partitionstoleranz, d. h. wie viele Knoten betrieben werden k?nnen, wenn die Netzwerkverbindung verloren geht, und ob sie nach der Netzwerkverbindung wiederhergestellt werden kann.
Laut dieser Theorie sind letztendlich drei Systeme m?glich: CA, AP und CP.
CA
Theoretisch kann ein verteiltes System CA w?hlen, aber wir haben uns entschieden, ein System, das nicht funktioniert, wenn die Netzwerkverbindung unterbrochen wird, nicht als verteiltes System zu bezeichnen.
Am Ende muss P garantiert sein, wenn es sich um ein verteiltes System handelt.
AP
Verfügbarkeit geht vor Konsistenz
Wenn mehrere Knoten vom Netzwerk getrennt werden, verringert sich der Wert der verbundenen Knoten, auch wenn sich nicht alle Knoten über den neuesten Status des Werts einig sind. Daher stimmen die neuesten Daten m?glicherweise nicht zwischen getrennten Knoten überein. Benutzer k?nnen den Dienst jedoch weiterhin nutzen, als ob sie die neuesten Daten erhalten würden.
Ein repr?sentatives Beispiel sind soziale Medien. Obwohl dies in der Realit?t unwahrscheinlich ist, gehen wir davon aus, dass die Netzwerkverbindung zwischen den Instagram-Knoten in Europa und den Knoten in Asien verloren geht. Es ist in Ordnung, dass die Anzahl der Follower, Likes usw., die Benutzer aus Asien und Benutzer aus Europa sehen, in dieser Zeit der St?rung leicht unterschiedlich ist. Die Funktion funktioniert aber weiterhin.
CP
Konsistenz vor Verfügbarkeit
Dies ist ein System, das in Situationen, in denen die neuesten Daten bei einem Netzwerkausfall nicht gew?hrleistet werden k?nnen, nicht auf Benutzeranfragen reagiert.
Beispiele beziehen sich normalerweise auf Geld (Transaktionen). Nehmen wir an, es liegt eine Netzwerkunterbrechung vor, wenn nur noch ein Hotelzimmer mit 50 % Rabatt verfügbar ist. Im AP-System werden Reservierungen unter der Annahme vorgenommen, dass beide Zimmer verfügbar sind, sodass die M?glichkeit einer überbuchung besteht. Das CP-System ist sich über den aktuellen Status dieser Daten nicht sicher und verschiebt die Anfrage oder lehnt sie ab.
PACELC-Theorem
Die CAP-Theorie ist eigentlich eine Theorie der Teilung. Wenn eine Partitionierung erfolgt ist, müssen Sie A oder C w?hlen.
Aber tats?chlich kommt es unter normalen Umst?nden nicht zu einer Teilung. Die Theorie, die in solchen Situationen angewendet werden kann, ist die PACELC-Theorie.
wenn (P) dann (AC) sonst (LC)
Mit anderen Worten, im Fall einer Partition berücksichtigen Sie AC, andernfalls berücksichtigen Sie LC.
LC
Latenz und Konsistenz
Unter normalen Umst?nden w?gt das System Latenz und Konsistenz ab. Es ist eine grandiose Theorie, aber in Wirklichkeit ist sie in der gesamten Computertechnik eine Wahrheit
über einen Kompromiss nachzudenken bedeutet, einen gewissen Kompromiss zwischen diesen beiden Standards zu sehen.Latenz kann intuitiv von langsam bis schnell bestimmt werden, aber es ist schwierig, intuitiv zu wissen, was Konsistenz ist.
Starke Konsistenz
Eine starke Konsistenz kann man schon beim H?ren des Namens spüren. Egal auf welchen Knoten Sie zugreifen, Sie müssen dieselben Daten sehen. Mit anderen Worten: Konsistenz ist nur m?glich, wenn alle Knoten die gleichen Daten haben.
Ich denke, man kann über eine Bank nachdenken.
Endgültige Konsistenz
Es ist eine Konsistenz namens
Eines Tages wird es konsistent sein. Dies bedeutet, dass nicht alle Clients bei einer bestimmten ?nderung gleichzeitig denselben Wert sehen, aber nach Abschluss der Synchronisierung schlie?lich denselben Wert sehen.
Daher wird abh?ngig von den Eigenschaften der Software entschieden, ob auf Konsistenz geachtet und gleichzeitig Latenz geopfert werden soll, oder ob auf Konsistenz geachtet werden soll, um eine schnelle Reaktion zu erm?glichen.
Das obige ist der detaillierte Inhalt vonLokale erste Software. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

Java und JavaScript sind unterschiedliche Programmiersprachen, die jeweils für verschiedene Anwendungsszenarien geeignet sind. Java wird für die Entwicklung gro?er Unternehmen und mobiler Anwendungen verwendet, w?hrend JavaScript haupts?chlich für die Entwicklung von Webseiten verwendet wird.

JavaScriptComents AreseessentialFormaintaining, Lesen und GuidingCodeexexecution.1) einzelne Linecommments Arequickickexplanationen.2) Multi-LindexplainComproxlogicorProvedetailedDocumentation.3) InlinecommentsclarifyspecificPartsosensofCode.BestPracticic

Die folgenden Punkte sollten bei der Verarbeitung von Daten und Zeiten in JavaScript festgestellt werden: 1. Es gibt viele M?glichkeiten, Datumsobjekte zu erstellen. Es wird empfohlen, ISO -Format -Zeichenfolgen zu verwenden, um die Kompatibilit?t sicherzustellen. 2. Die Zeitinformationen erhalten und festlegen k?nnen und setzen Sie Methoden fest, und beachten Sie, dass der Monat mit 0 beginnt. 3. Die manuell formatierende Daten sind Zeichenfolgen erforderlich, und auch Bibliotheken von Drittanbietern k?nnen verwendet werden. 4. Es wird empfohlen, Bibliotheken zu verwenden, die Zeitzonen wie Luxon unterstützen. Das Beherrschen dieser wichtigen Punkte kann h?ufige Fehler effektiv vermeiden.

PlatztagsattheBottomofabogpostorwebpageServeSpracticalPurposesforseo, Usexperience und design.1ithelpswithseobyallowingEnginestoaccessKeyword-relevantTagswithoutClutteringHemainContent.2.

JavaScriptispreferredforwebdevelopment,whileJavaisbetterforlarge-scalebackendsystemsandAndroidapps.1)JavaScriptexcelsincreatinginteractivewebexperienceswithitsdynamicnatureandDOMmanipulation.2)Javaoffersstrongtypingandobject-orientedfeatures,idealfor

JavaScripthassevenfundamentaldatatypes:number,string,boolean,undefined,null,object,andsymbol.1)Numbersuseadouble-precisionformat,usefulforwidevaluerangesbutbecautiouswithfloating-pointarithmetic.2)Stringsareimmutable,useefficientconcatenationmethodsf

Ereigniserfassung und Blase sind zwei Phasen der Ereignisausbreitung in DOM. Die Erfassung erfolgt von der oberen Schicht bis zum Zielelement, und die Blase ist vom Zielelement bis zur oberen Schicht. 1. Die Ereigniserfassung wird implementiert, indem der UseCapture -Parameter von AddEventListener auf true festgelegt wird. 2. Ereignisblase ist das Standardverhalten, Uscapture ist auf false oder weggelassen. 3. Die Ereignisausbreitung kann verwendet werden, um die Ereignisausbreitung zu verhindern. 4. Event Bubbling unterstützt die Ereignisdelegation, um die Effizienz der dynamischen Inhaltsverarbeitung zu verbessern. 5. Capture kann verwendet werden, um Ereignisse im Voraus abzufangen, wie z. B. Protokollierung oder Fehlerverarbeitung. Das Verst?ndnis dieser beiden Phasen hilft dabei, das Timing und die Reaktion von JavaScript auf Benutzeroperationen genau zu steuern.

Java und JavaScript sind verschiedene Programmiersprachen. 1.Java ist eine statisch typisierte und kompilierte Sprache, die für Unternehmensanwendungen und gro?e Systeme geeignet ist. 2. JavaScript ist ein dynamischer Typ und eine interpretierte Sprache, die haupts?chlich für die Webinteraktion und die Front-End-Entwicklung verwendet wird.
