亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
鑰匙要點(diǎn)
移動(dòng)瀏覽器:
誰(shuí)在使用本地存儲(chǔ)?
私有瀏覽的註釋
>可以在子域之間共享本地存儲(chǔ)嗎?
可以在不同的瀏覽器之間傳輸本地存儲(chǔ)數(shù)據(jù)嗎?
>如何處理本地存儲(chǔ)配額超過(guò)錯(cuò)誤?
首頁(yè) web前端 js教程 HTML5本地存儲(chǔ)重新審視

HTML5本地存儲(chǔ)重新審視

Feb 20, 2025 am 09:37 AM

HTML5本地存儲(chǔ)重新審視

鑰匙要點(diǎn)

    Web Storage API的一部分
  • HTML5本地存儲(chǔ)允許在瀏覽器中存儲(chǔ)數(shù)據(jù)存儲(chǔ),其容量為2MB至10MB,具體取決於瀏覽器,協(xié)議,端口和頂級(jí)域。與cookie不同,此數(shù)據(jù)未發(fā)送回服務(wù)器,並在會(huì)話和設(shè)備之間持續(xù)持續(xù)。
  • >
  • >由於本地存儲(chǔ)的同步性可能會(huì)受到性能,但它的速度可能比移動(dòng)設(shè)備上的本機(jī)緩存更快。為了優(yōu)化性能,建議限制讀取,僅在窗口之後訪問(wèn)本地存儲(chǔ)。
  • >並非所有瀏覽器都支持在私人或隱身模式下本地存儲(chǔ)中設(shè)置項(xiàng)目,在某些情況下,退出後,以私有模式存儲(chǔ)的數(shù)據(jù)被清除。為了確保安全使用本地存儲(chǔ),建議不僅要測(cè)試支持,還建議獲得和設(shè)置物品的能力。 >
>本地存儲(chǔ)是HTML5 Web Storage API的一部分,它允許您將數(shù)據(jù)存儲(chǔ)在瀏覽器中。與cookie不同,使用本地存儲(chǔ)存儲(chǔ)的數(shù)據(jù)不會(huì)發(fā)送回服務(wù)器。所有數(shù)據(jù)都停留在客戶端上,您當(dāng)前可以存儲(chǔ)從2MB到10MB。此限制與使用的特定瀏覽器,協(xié)議(HTTP或HTTPS),端口和最高級(jí)別域相關(guān)。 > 在本文中,我們將討論如何使用此API來(lái)提高網(wǎng)站的性能。我會(huì)假設(shè)您知道什麼是本地存儲(chǔ)和暴露的方法,但是如果您需要復(fù)習(xí),我建議您閱讀Colin Ihrig的Web Storage API概述。

可用的磁盤空間

>在開(kāi)始討論本地存儲(chǔ)之前,我想概述大型移動(dòng)設(shè)備和桌面瀏覽器中可用的磁盤空間。以下表是基於文章“在移動(dòng)瀏覽器上使用配額”。

移動(dòng)瀏覽器:

瀏覽器 chrome android瀏覽器 firefox > ios Safari 版本 40 4.3 34 6-8 可用空間 10MB 2MB 10MB 5MB 桌面瀏覽器:

瀏覽器 chrome > Opera firefox > Safari > Internet Explorer 版本 40 27 34 6-8 9-11 可用空間 10MB 10MB 10MB 5MB 10MB >本機(jī)緩存vs本地存儲(chǔ)

使用本地存儲(chǔ)時(shí),您的數(shù)據(jù)將留在客戶端上,並在會(huì)話和設(shè)備重新啟動(dòng)之間持續(xù)存在。正如我在簡(jiǎn)介中提到的那樣,本地存儲(chǔ)API的限制與特定瀏覽器(如上一個(gè)表中所示),協(xié)議,端口和最高級(jí)別域相關(guān)。相比之下,瀏覽器本機(jī)緩存上可用的空間在網(wǎng)站上共享,並且在移動(dòng)設(shè)備上較小。它經(jīng)常被沖洗,有時(shí)甚至在同一訪問(wèn)中。移動(dòng)設(shè)備還有一個(gè)其他問(wèn)題:它們不如桌面設(shè)備強(qiáng)大,因此必須實(shí)現(xiàn)良好的性能。

>關(guān)於本地存儲(chǔ)性能的討論很多。例如,以前與莫齊拉(Mozilla)一起寫的克里斯蒂安·海爾曼(Christian Heilmann)寫道:“沒(méi)有簡(jiǎn)單的解決方案用於本地存儲(chǔ)”。如果不仔細(xì)使用,本地存儲(chǔ)可能會(huì)受到性能的打擊。您需要考慮的第一件事是它是同步API,因此它阻止了主UI線程。本地存儲(chǔ)寫入並讀取來(lái)自硬盤驅(qū)動(dòng)器的數(shù)據(jù),這比從內(nèi)存中閱讀要貴得多。為了使您訪問(wèn)數(shù)據(jù),本地存儲(chǔ)需要從磁盤中讀取數(shù)據(jù),這就是性能命中的地方。這種性能命中並不是少量數(shù)據(jù)的主要問(wèn)題,但是使用完整的存儲(chǔ)限制可以很明顯。

作為一個(gè)很好的做法,您應(yīng)該嘗試執(zhí)行盡可能少的讀取。另外,由於我們正在處理同步API,因此您應(yīng)該嘗試僅在窗口啟動(dòng)窗口後才從本地存儲(chǔ)中讀取數(shù)據(jù),以避免阻止UI線程。

事物已經(jīng)改變

>但是情況越來(lái)越好。 Mobify的Peter McLachlan發(fā)表的一篇文章解釋說(shuō),本地存儲(chǔ)的速度比移動(dòng)設(shè)備上的本機(jī)緩存快5倍。

在同一篇文章的附錄中,您可以看到移動(dòng)瀏覽器上本地存儲(chǔ)的性能的演變以及它的改進(jìn)程度。您還可以看到本地存儲(chǔ)始終比本機(jī)緩存更快。

誰(shuí)在使用本地存儲(chǔ)?

>

>最近有一些網(wǎng)站使用本地存儲(chǔ)來(lái)緩存資產(chǎn),例如使用本地存儲(chǔ)進(jìn)行關(guān)鍵路徑CSS的監(jiān)護(hù)人。您可以在2014年速度會(huì)議上查看此演示文稿,以了解他們?nèi)绾巫龅竭@一點(diǎn)。

>最近也開(kāi)始在本地存儲(chǔ)中加入Web字體。在本文有關(guān)最近在其網(wǎng)站上實(shí)施的一些績(jī)效改進(jìn)的文章中,他們報(bào)告了推遲的網(wǎng)絡(luò)字體並將其緩存在當(dāng)?shù)卮鎯?chǔ)中,這導(dǎo)致了最有效的改進(jìn)。

>

私有瀏覽的註釋

如Caniuse.com在“標(biāo)籤已知問(wèn)題”上報(bào)導(dǎo)的,在以私有或隱身模式運(yùn)行時(shí),Safari,ios Safari和Android瀏覽器不支持在本地存儲(chǔ)中設(shè)置項(xiàng)目。

>

>其他瀏覽器(例如Chrome和Firefox)允許您在私有模式下將數(shù)據(jù)存儲(chǔ)在本地存儲(chǔ)中,但是當(dāng)您退出專用模式時(shí),將清除數(shù)據(jù)。這是由於隱私問(wèn)題造成的,因?yàn)樵谒接心J较拢腥丝赡軙?huì)使用持久數(shù)據(jù)來(lái)了解用戶的操作。

如果預(yù)計(jì)將在隨後的訪問(wèn)中出現(xiàn)在上一個(gè)會(huì)話下的值下,則此問(wèn)題可能會(huì)破壞您的應(yīng)用程序的行為。因此,為了安全地使用本地存儲(chǔ),這不僅是測(cè)試支持的好習(xí)慣,而且是測(cè)試獲取和設(shè)置項(xiàng)目的能力。

>

>有關(guān)在私有模式下的本地存儲(chǔ)行為以及如何在不同瀏覽器中查看本地存儲(chǔ)內(nèi)容的更多信息,您可以使用“在測(cè)試時(shí)不要忘記檢查私人瀏覽模式”作為參考。

>

結(jié)論

也許是時(shí)候開(kāi)始重新審視本地存儲(chǔ)及其潛在用途了,尤其是在可以使用它來(lái)避免延遲瓶頸的移動(dòng)設(shè)備上。我們可以開(kāi)始考慮緩存我們的資產(chǎn)的新方法,然後立即將其提供給我們的用戶。我們已經(jīng)看到已經(jīng)以非常規(guī)的方式成功實(shí)現(xiàn)了本地存儲(chǔ)使用。

經(jīng)常詢問(wèn)有關(guān)HTML5本地存儲(chǔ)的問(wèn)題(常見(jiàn)問(wèn)題解答)

> HTML5本地存儲(chǔ)的最大存儲(chǔ)限制是多少?但是,大多數(shù)現(xiàn)代瀏覽器每個(gè)域提供約5MB的存儲(chǔ)空間。這明顯大於cookie提供的4KB(約4096個(gè)字節(jié))。重要的是要注意,此存儲(chǔ)是每個(gè)域,而不是每個(gè)本地存儲(chǔ)對(duì)象。 >如何檢查瀏覽器是否支持HTML5本地存儲(chǔ)?

>您可以通過(guò)在JavaScript中使用“ IN”運(yùn)算符來(lái)檢查瀏覽器是否支持HTML5本地存儲(chǔ)。這是一個(gè)簡(jiǎn)單的代碼段,檢查本地存儲(chǔ)支持:

if(window && window中的'localStorage'&& window ['localStorage']!== null){ //支持本地存儲(chǔ)
> } else {
//不支持本地存儲(chǔ)
}

}

>如何從HTML5本地存儲(chǔ)中清除數(shù)據(jù)?

>您可以使用clear()方法從HTML5本地存儲(chǔ)中清除數(shù)據(jù)。此方法從當(dāng)前域的本地存儲(chǔ)中刪除了所有鍵值對(duì)。這是一個(gè)簡(jiǎn)單的代碼片段:

localstorage.clear();

>我可以存儲(chǔ)對(duì)像或數(shù)組中的html5 local Storage中嗎?

是的,您可以將對(duì)像或數(shù)組存儲(chǔ)在HTML5本地存儲(chǔ)。但是,本地存儲(chǔ)僅支持字符串鍵值對(duì)。因此,您需要在存儲(chǔ)之前使用json.stringify()將對(duì)像或數(shù)組轉(zhuǎn)換為字符串,然後在檢索時(shí)使用json.parse()將其轉(zhuǎn)換回對(duì)像或數(shù)組。本地存儲(chǔ)和會(huì)話存儲(chǔ)之間的區(qū)別?

>本地存儲(chǔ)和會(huì)話存儲(chǔ)之間的主要區(qū)別在於其壽命和範(fàn)圍。即使關(guān)閉瀏覽器並重新打開(kāi)瀏覽器,本地存儲(chǔ)中的數(shù)據(jù)仍然存在,而頁(yè)面會(huì)話結(jié)束時(shí)會(huì)話存儲(chǔ)中的數(shù)據(jù)將被清除,即當(dāng)關(guān)閉瀏覽器時(shí)。 >我如何迭代本地中的所有值存儲(chǔ)?

您可以使用簡(jiǎn)單的循環(huán)與localstorage.key()方法和localStorage.getItem()結(jié)合使用for Loop()迭代本地存儲(chǔ)中的所有值方法。

>可以在子域之間共享本地存儲(chǔ)嗎?

不,不,在子域之間無(wú)法共享本地存儲(chǔ)。每個(gè)子域都有其自己的獨(dú)立本地存儲(chǔ)。

可以在不同的瀏覽器之間傳輸本地存儲(chǔ)數(shù)據(jù)嗎?

不,不能在不同的瀏覽器之間傳輸本地存儲(chǔ)數(shù)據(jù)。每個(gè)瀏覽器都有其自己的獨(dú)立本地存儲(chǔ)。

>

>如何處理本地存儲(chǔ)配額超過(guò)錯(cuò)誤?

當(dāng)超??過(guò)本地存儲(chǔ)配額時(shí),拋出了quota_exceeded_err異常。您可以通過(guò)將其捕獲在試用塊中並採(cǎi)取適當(dāng)?shù)拇胧﹣?lái)處理此異常,例如清除某些空間或通知用戶。

>

以上是HTML5本地存儲(chǔ)重新審視的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)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脫衣器

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)

垃圾收集如何在JavaScript中起作用? 垃圾收集如何在JavaScript中起作用? Jul 04, 2025 am 12:42 AM

JavaScript的垃圾回收機(jī)制通過(guò)標(biāo)記-清除算法自動(dòng)管理內(nèi)存,以減少內(nèi)存洩漏風(fēng)險(xiǎn)。引擎從根對(duì)像出發(fā)遍歷並標(biāo)記活躍對(duì)象,未被標(biāo)記的則被視為垃圾並被清除。例如,當(dāng)對(duì)像不再被引用(如將變量設(shè)為null),它將在下一輪迴收中被釋放。常見(jiàn)的內(nèi)存洩漏原因包括:①未清除的定時(shí)器或事件監(jiān)聽(tīng)器;②閉包中對(duì)外部變量的引用;③全局變量持續(xù)持有大量數(shù)據(jù)。 V8引擎通過(guò)分代回收、增量標(biāo)記、並行/並發(fā)回收等策略優(yōu)化回收效率,降低主線程阻塞時(shí)間。開(kāi)發(fā)時(shí)應(yīng)避免不必要的全局引用、及時(shí)解除對(duì)象關(guān)聯(lián),以提升性能與穩(wěn)定性。

如何在node.js中提出HTTP請(qǐng)求? 如何在node.js中提出HTTP請(qǐng)求? Jul 13, 2025 am 02:18 AM

在Node.js中發(fā)起HTTP請(qǐng)求有三種常用方式:使用內(nèi)置模塊、axios和node-fetch。 1.使用內(nèi)置的http/https模塊無(wú)需依賴,適合基礎(chǔ)場(chǎng)景,但需手動(dòng)處理數(shù)據(jù)拼接和錯(cuò)誤監(jiān)聽(tīng),例如用https.get()獲取數(shù)據(jù)或通過(guò).write()發(fā)送POST請(qǐng)求;2.axios是基於Promise的第三方庫(kù),語(yǔ)法簡(jiǎn)潔且功能強(qiáng)大,支持async/await、自動(dòng)JSON轉(zhuǎn)換、攔截器等,推薦用於簡(jiǎn)化異步請(qǐng)求操作;3.node-fetch提供類似瀏覽器fetch的風(fēng)格,基於Promise且語(yǔ)法簡(jiǎn)單

JavaScript數(shù)據(jù)類型:原始與參考 JavaScript數(shù)據(jù)類型:原始與參考 Jul 13, 2025 am 02:43 AM

JavaScript的數(shù)據(jù)類型分為原始類型和引用類型。原始類型包括string、number、boolean、null、undefined和symbol,其值不可變且賦值時(shí)復(fù)制副本,因此互不影響;引用類型如對(duì)象、數(shù)組和函數(shù)存儲(chǔ)的是內(nèi)存地址,指向同一對(duì)象的變量會(huì)相互影響。判斷類型可用typeof和instanceof,但需注意typeofnull的歷史問(wèn)題。理解這兩類差異有助於編寫更穩(wěn)定可靠的代碼。

JavaScript時(shí)間對(duì)象,某人構(gòu)建了一個(gè)eactexe,在Google Chrome上更快的網(wǎng)站等等 JavaScript時(shí)間對(duì)象,某人構(gòu)建了一個(gè)eactexe,在Google Chrome上更快的網(wǎng)站等等 Jul 08, 2025 pm 02:27 PM

JavaScript開(kāi)發(fā)者們,大家好!歡迎閱讀本週的JavaScript新聞!本週我們將重點(diǎn)關(guān)注:Oracle與Deno的商標(biāo)糾紛、新的JavaScript時(shí)間對(duì)象獲得瀏覽器支持、GoogleChrome的更新以及一些強(qiáng)大的開(kāi)發(fā)者工具。讓我們開(kāi)始吧! Oracle與Deno的商標(biāo)之爭(zhēng)Oracle試圖註冊(cè)“JavaScript”商標(biāo)的舉動(dòng)引發(fā)爭(zhēng)議。 Node.js和Deno的創(chuàng)建者RyanDahl已提交請(qǐng)願(yuàn)書,要求取消該商標(biāo),他認(rèn)為JavaScript是一個(gè)開(kāi)放標(biāo)準(zhǔn),不應(yīng)由Oracle

React與Angular vs Vue:哪個(gè)JS框架最好? React與Angular vs Vue:哪個(gè)JS框架最好? Jul 05, 2025 am 02:24 AM

選哪個(gè)JavaScript框架最好?答案是根據(jù)需求選擇最適合的。 1.React靈活自由,適合需要高度定制、團(tuán)隊(duì)有架構(gòu)能力的中大型項(xiàng)目;2.Angular提供完整解決方案,適合企業(yè)級(jí)應(yīng)用和長(zhǎng)期維護(hù)的大項(xiàng)目;3.Vue上手簡(jiǎn)單,適合中小型項(xiàng)目或快速開(kāi)發(fā)。此外,是否已有技術(shù)棧、團(tuán)隊(duì)規(guī)模、項(xiàng)目生命週期及是否需要SSR也都是選擇框架的重要因素。總之,沒(méi)有絕對(duì)最好的框架,適合自己需求的就是最佳選擇。

立即在JavaScript中立即調(diào)用功能表達(dá)式(IIFE) 立即在JavaScript中立即調(diào)用功能表達(dá)式(IIFE) Jul 04, 2025 am 02:42 AM

IIFE(ImmediatelyInvokedFunctionExpression)是一種在定義後立即執(zhí)行的函數(shù)表達(dá)式,用於變量隔離和避免污染全局作用域。它通過(guò)將函數(shù)包裹在括號(hào)中使其成為表達(dá)式,並緊隨其後的一對(duì)括號(hào)來(lái)調(diào)用,如(function(){/code/})();。其核心用途包括:1.避免變量衝突,防止多個(gè)腳本間的命名重複;2.創(chuàng)建私有作用域,使函數(shù)內(nèi)部變量不可見(jiàn);3.模塊化代碼,便於初始化工作而不暴露過(guò)多變量。常見(jiàn)寫法包括帶參數(shù)傳遞的版本和ES6箭頭函數(shù)版本,但需注意:必須使用表達(dá)式、結(jié)

處理諾言:鏈接,錯(cuò)誤處理和承諾在JavaScript中 處理諾言:鏈接,錯(cuò)誤處理和承諾在JavaScript中 Jul 08, 2025 am 02:40 AM

Promise是JavaScript中處理異步操作的核心機(jī)制,理解鍊式調(diào)用、錯(cuò)誤處理和組合器是掌握其應(yīng)用的關(guān)鍵。 1.鍊式調(diào)用通過(guò).then()返回新Promise實(shí)現(xiàn)異步流程串聯(lián),每個(gè).then()接收上一步結(jié)果並可返回值或Promise;2.錯(cuò)誤處理應(yīng)統(tǒng)一使用.catch()捕獲異常,避免靜默失敗,並可在catch中返回默認(rèn)值繼續(xù)流程;3.組合器如Promise.all()(全成功才成功)、Promise.race()(首個(gè)完成即返回)和Promise.allSettled()(等待所有完成)

什麼是緩存API?如何與服務(wù)人員使用? 什麼是緩存API?如何與服務(wù)人員使用? Jul 08, 2025 am 02:43 AM

CacheAPI是瀏覽器提供的一種緩存網(wǎng)絡(luò)請(qǐng)求的工具,常與ServiceWorker配合使用,以提升網(wǎng)站性能和離線體驗(yàn)。 1.它允許開(kāi)發(fā)者手動(dòng)存儲(chǔ)如腳本、樣式表、圖片等資源;2.可根據(jù)請(qǐng)求匹配緩存響應(yīng);3.支持刪除特定緩存或清空整個(gè)緩存;4.通過(guò)ServiceWorker監(jiān)聽(tīng)fetch事件實(shí)現(xiàn)緩存優(yōu)先或網(wǎng)絡(luò)優(yōu)先等策略;5.常用於離線支持、加快重複訪問(wèn)速度、預(yù)加載關(guān)鍵資源及後臺(tái)更新內(nèi)容;6.使用時(shí)需注意緩存版本控制、存儲(chǔ)限制及與HTTP緩存機(jī)制的區(qū)別。

See all articles