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

首頁(yè) web前端 js教程 本地優(yōu)先軟件

本地優(yōu)先軟件

Dec 29, 2024 am 03:02 AM

Local First Software

狀態(tài)

隨著網(wǎng)絡(luò)的發(fā)展,用戶交互和顯示的元素?cái)?shù)量不斷增加。這些元素會(huì)改變用戶看到的屏幕。改變屏幕的事物可以定義為“狀態(tài)”。

例如,在信息網(wǎng)頁(yè)(例如登陸頁(yè)面)的情況下,“狀態(tài)”是要顯示的一條信息。

接下來(lái),在 GitHub 的情況下,有各種信息,例如我的信息、我的存儲(chǔ)庫(kù)信息、星星數(shù)量等。由于向用戶顯示的屏幕因這些而異,因此所有這些都可以被視為“狀態(tài)” '。

作為一個(gè)更復(fù)雜的例子,你可以舉像Figma這樣的例子。屏幕上的所有圖形,如點(diǎn)、線、面,都是“狀態(tài)”。此外,協(xié)作功能需要您分享除您自己之外的其他人的狀態(tài)。

狀態(tài)與數(shù)據(jù)

狀態(tài)都是數(shù)據(jù)。關(guān)于用戶的信息、用戶定制的信息等都是存儲(chǔ)在某處的數(shù)據(jù),這些數(shù)據(jù)很快就成為用戶看到的屏幕的狀態(tài)。通常,這些數(shù)據(jù)作為單一事實(shí)來(lái)源存儲(chǔ)在服務(wù)器上。如果您登錄到某個(gè)網(wǎng)站,它將作為單行保存在該網(wǎng)站服務(wù)器上的用戶表中。

數(shù)據(jù)太遠(yuǎn)

現(xiàn)在的網(wǎng)絡(luò)很復(fù)雜。一個(gè)屏幕上顯示著無(wú)數(shù)的按鈕和大量的數(shù)據(jù)。有很多信息,其時(shí)效性很重要。每當(dāng)這些狀態(tài)發(fā)生變化時(shí),數(shù)據(jù)必須來(lái)回發(fā)送到服務(wù)器以確保一致性。如果你只需要每分鐘接收“下一頁(yè)”,就像文檔一樣,那并不是什么大問(wèn)題。然而,在像Notion這樣用戶不斷修改數(shù)據(jù)的情況下,這就成了一個(gè)大問(wèn)題。如果我每次在頁(yè)面上設(shè)置類似功能時(shí)都必須加載它,我會(huì)感到不安

。

樂(lè)觀更新

想象一下在 Instagram 等社交媒體網(wǎng)站上點(diǎn)擊“贊”按鈕。當(dāng)我點(diǎn)贊的時(shí)候,我必須去服務(wù)器保存我對(duì)帖子點(diǎn)贊的信息,將帖子的點(diǎn)贊數(shù)加一,然后獲取當(dāng)前帖子的點(diǎn)贊數(shù)并顯示給我。

但在 Instagram 上,點(diǎn)贊數(shù)會(huì)在 0.001 秒內(nèi)隨著動(dòng)畫而增加。

這可以通過(guò)在信息到達(dá)服務(wù)器之前更新客戶端的狀態(tài)來(lái)實(shí)現(xiàn)。這個(gè)想法是更新客戶端的狀態(tài),假設(shè)類似的數(shù)據(jù)會(huì)很好地記錄在服務(wù)器上。大多數(shù)情況下,與服務(wù)器的通信都會(huì)成功,所以我們樂(lè)觀地判斷這是成功的。

當(dāng)然,也有發(fā)送到服務(wù)器的請(qǐng)求失敗的情況,所以要注意失敗時(shí)回滾客戶端狀態(tài)。

響應(yīng)性高于一致性

優(yōu)化顯示我是否點(diǎn)擊了點(diǎn)贊按鈕是非常合理的。但是當(dāng)我點(diǎn)擊的時(shí)候,其他人也點(diǎn)擊了,所以點(diǎn)贊數(shù)可能增加了一個(gè)或多個(gè),我該如何處理?

只要稍微忽略數(shù)據(jù)一致性就可以輕松解決這個(gè)問(wèn)題。如果該帖子是熱門帖子,那么在我查看該帖子期間,點(diǎn)贊數(shù)不可能不增加。這只是軟件的策略。為了快速響應(yīng),犧牲了一些數(shù)據(jù)一致性

。

CAP定理

在分布式系統(tǒng)研究中,有CAP理論。該理論指出,配置分布式系統(tǒng)時(shí),只能使用 C、A、P 中的兩個(gè)。

C 代表一致性。無(wú)論從哪個(gè)節(jié)點(diǎn)讀取數(shù)據(jù),都必須讀取相同的數(shù)據(jù)

。

A是Availability,表示即使某個(gè)節(jié)點(diǎn)掛掉了,是否所有的請(qǐng)求都能得到響應(yīng)。

P 是 Partition-tolerance,即網(wǎng)絡(luò)連接丟失時(shí)可以運(yùn)行多少個(gè)節(jié)點(diǎn)以及網(wǎng)絡(luò)連接后是否可以恢復(fù)。

根據(jù)這個(gè)理論,最終可能存在三種系統(tǒng):CA、AP 和 CP。

CA

理論上,分布式系統(tǒng)可以選擇CA,但我們決定不將網(wǎng)絡(luò)連接丟失時(shí)不運(yùn)行的系統(tǒng)稱為分布式系統(tǒng)。

最后,如果是分布式系統(tǒng),P一定要保證。

美聯(lián)社

可用性高于一致性

當(dāng)多個(gè)節(jié)點(diǎn)與網(wǎng)絡(luò)斷開(kāi)連接時(shí),即使所有節(jié)點(diǎn)對(duì)值的最新?tīng)顟B(tài)不一致,連接節(jié)點(diǎn)的值也會(huì)降低。因此,斷開(kāi)連接的節(jié)點(diǎn)之間的最新數(shù)據(jù)可能不匹配。不過(guò),用戶可以繼續(xù)使用該服務(wù),就像收到最新數(shù)據(jù)一樣。

一個(gè)代表性的例子是社交媒體。盡管這在現(xiàn)實(shí)中不太可能發(fā)生,但我們假設(shè) Instagram 歐洲節(jié)點(diǎn)和亞洲節(jié)點(diǎn)之間的網(wǎng)絡(luò)連接丟失。在此中斷期間,從亞洲訪問(wèn)的用戶和從歐洲訪問(wèn)的用戶看到的關(guān)注者數(shù)量、點(diǎn)贊數(shù)等略有不同,這是正常的。但該功能仍然有效。

CP

一致性優(yōu)于可用性

這是一個(gè)在網(wǎng)絡(luò)故障情況下無(wú)法保證最新數(shù)據(jù)的情況下不響應(yīng)用戶請(qǐng)求的系統(tǒng)。

示例通常與金錢(交易)有關(guān)。假設(shè)酒店只剩下一間有 50% 折扣的房間,但出現(xiàn)網(wǎng)絡(luò)中斷。在AP系統(tǒng)中,預(yù)訂是假設(shè)兩個(gè)房間都有空的情況下進(jìn)行的,因此存在超額預(yù)訂的可能性。 CP 系統(tǒng)不確定該數(shù)據(jù)的最新?tīng)顟B(tài),因此推遲或拒絕請(qǐng)求。

PACELC定理

CAP理論實(shí)際上是一個(gè)關(guān)于劃分的理論。如果發(fā)生分區(qū),則必須選擇A或C。

但實(shí)際上,正常情況下,是不會(huì)發(fā)生分區(qū)的??梢詰?yīng)用于這種情況的理論是PACELC理論。

如果 (P) 則 (AC) 否則 (LC)

也就是說(shuō),分區(qū)的情況下考慮AC,否則考慮LC。

液相色譜

延遲和一致性

正常情況下,系統(tǒng)會(huì)在延遲和一致性之間進(jìn)行權(quán)衡。這是一個(gè)宏大的理論,但事實(shí)上,它就像整個(gè)計(jì)算機(jī)工程的真理

。

考慮權(quán)衡意味著在這兩個(gè)標(biāo)準(zhǔn)之間找到一定程度的妥協(xié)。

延遲可以直觀地確定從慢到快,但很難直觀地知道什么是一致性。

一致性強(qiáng)

一致性很強(qiáng),光聽(tīng)名字就感受到了。無(wú)論訪問(wèn)哪個(gè)節(jié)點(diǎn),都必須看到相同的數(shù)據(jù)。換句話說(shuō),只有所有節(jié)點(diǎn)都有相同的數(shù)據(jù),一致性才有可能。

我認(rèn)為你可以考慮一家銀行。

最終一致性

這是一種稱為

總有一天它會(huì)保持一致的一致性。這意味著對(duì)于某個(gè)更改,并非所有客戶端都會(huì)同時(shí)看到相同的值,但在同步完成后它們最終會(huì)看到相同的值。

因此,根據(jù)軟件的特點(diǎn),決定是犧牲延遲的同時(shí)兼顧一致性,還是為了快速響應(yīng)而犧牲一致性。

以上是本地優(yōu)先軟件的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

Java vs. JavaScript:清除混亂 Java vs. JavaScript:清除混亂 Jun 20, 2025 am 12:27 AM

Java和JavaScript是不同的編程語(yǔ)言,各自適用于不同的應(yīng)用場(chǎng)景。Java用于大型企業(yè)和移動(dòng)應(yīng)用開(kāi)發(fā),而JavaScript主要用于網(wǎng)頁(yè)開(kāi)發(fā)。

JavaScript評(píng)論:簡(jiǎn)短說(shuō)明 JavaScript評(píng)論:簡(jiǎn)短說(shuō)明 Jun 19, 2025 am 12:40 AM

JavascriptconcommentsenceenceEncorenceEnterential gransimenting,reading and guidingCodeeXecution.1)單inecommentsareusedforquickexplanations.2)多l(xiāng)inecommentsexplaincomplexlogicorprovideDocumentation.3)

如何在JS中與日期和時(shí)間合作? 如何在JS中與日期和時(shí)間合作? Jul 01, 2025 am 01:27 AM

JavaScript中的日期和時(shí)間處理需注意以下幾點(diǎn):1.創(chuàng)建Date對(duì)象有多種方式,推薦使用ISO格式字符串以保證兼容性;2.獲取和設(shè)置時(shí)間信息可用get和set方法,注意月份從0開(kāi)始;3.手動(dòng)格式化日期需拼接字符串,也可使用第三方庫(kù);4.處理時(shí)區(qū)問(wèn)題建議使用支持時(shí)區(qū)的庫(kù),如Luxon。掌握這些要點(diǎn)能有效避免常見(jiàn)錯(cuò)誤。

JavaScript與Java:開(kāi)發(fā)人員的全面比較 JavaScript與Java:開(kāi)發(fā)人員的全面比較 Jun 20, 2025 am 12:21 AM

JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.2)

為什么要將標(biāo)簽放在的底部? 為什么要將標(biāo)簽放在的底部? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScript:探索用于高效編碼的數(shù)據(jù)類型 JavaScript:探索用于高效編碼的數(shù)據(jù)類型 Jun 20, 2025 am 12:46 AM

javascripthassevenfundaMentalDatatypes:數(shù)字,弦,布爾值,未定義,null,object和symbol.1)numberSeadUble-eaduble-ecisionFormat,forwidevaluerangesbutbecautious.2)

什么是在DOM中冒泡和捕獲的事件? 什么是在DOM中冒泡和捕獲的事件? Jul 02, 2025 am 01:19 AM

事件捕獲和冒泡是DOM中事件傳播的兩個(gè)階段,捕獲是從頂層向下到目標(biāo)元素,冒泡是從目標(biāo)元素向上傳播到頂層。1.事件捕獲通過(guò)addEventListener的useCapture參數(shù)設(shè)為true實(shí)現(xiàn);2.事件冒泡是默認(rèn)行為,useCapture設(shè)為false或省略;3.可使用event.stopPropagation()阻止事件傳播;4.冒泡支持事件委托,提高動(dòng)態(tài)內(nèi)容處理效率;5.捕獲可用于提前攔截事件,如日志記錄或錯(cuò)誤處理。了解這兩個(gè)階段有助于精確控制JavaScript響應(yīng)用戶操作的時(shí)機(jī)和方式。

Java和JavaScript有什么區(qū)別? Java和JavaScript有什么區(qū)別? Jun 17, 2025 am 09:17 AM

Java和JavaScript是不同的編程語(yǔ)言。1.Java是靜態(tài)類型、編譯型語(yǔ)言,適用于企業(yè)應(yīng)用和大型系統(tǒng)。2.JavaScript是動(dòng)態(tài)類型、解釋型語(yǔ)言,主要用于網(wǎng)頁(yè)交互和前端開(kāi)發(fā)。

See all articles