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

目錄
切勿在清單文件中列出清單文件
緩存頁(yè)面上未緩存的資源不會(huì)加載
始終在服務(wù)器的 .htaccess 文件中設(shè)置應(yīng)用程序類型清單
避免因找不到文件而丟棄整個(gè)清單
即使在線,數(shù)據(jù)也從 AppCache 加載
服務(wù)器上的更改不會(huì)發(fā)生,直到清單文件更新
清單文件必須與主機(jī)來(lái)自相同的來(lái)源提供服務(wù)
相對(duì) URL 相對(duì)於清單的 URL
以編程方式檢查清單的狀態(tài)
結(jié)論
關(guān)於 HTML5 應(yīng)用程序緩存的常見(jiàn)問(wèn)題解答 (FAQ)
什麼是 HTML5 應(yīng)用程序緩存,為什麼它很重要?
HTML5 應(yīng)用程序緩存是如何工作的?
使用 HTML5 應(yīng)用程序緩存時(shí)有哪些常見(jiàn)的陷阱?
如何避免這些陷阱?
HTML5 應(yīng)用程序緩存的未來(lái)是什麼?
如何創(chuàng)建清單文件?
如何將網(wǎng)頁(yè)與清單文件關(guān)聯(lián)?
如何更新緩存?
如果清單文件中列出的資源無(wú)法下載會(huì)發(fā)生什麼?
我可以將 HTML5 應(yīng)用程序緩存用於所有資源嗎?
首頁(yè) web前端 js教程 使用HTML5應(yīng)用程序緩存時(shí),常見(jiàn)的陷阱要避免

使用HTML5應(yīng)用程序緩存時(shí),常見(jiàn)的陷阱要避免

Feb 20, 2025 am 10:05 AM

Common Pitfalls to Avoid when using HTML5 Application Cache

關(guān)鍵要點(diǎn)

  • 切勿將清單文件包含在應(yīng)用程序緩存清單中,這會(huì)造成循環(huán),幾乎無(wú)法通知您的網(wǎng)站有新的緩存文件可用。
  • 始終在服務(wù)器的 .htaccess 文件中設(shè)置應(yīng)用程序類型清單,以確保 AppCache 正確運(yùn)行。如果未設(shè)置媒體類型,AppCache 將無(wú)法工作。
  • 請(qǐng)注意,如果清單文件中指定的單個(gè)文件都找不到或無(wú)法下載,則整個(gè)清單文件將被丟棄。這是 AppCache 的一種特殊行為。
  • 更新網(wǎng)站後,始終更新清單文件,否則用戶將看不到更改,只會(huì)看到以前緩存的數(shù)據(jù)。您可以在清單文件中註釋中更新版本號(hào)或日期,以強(qiáng)制用戶的 Web 瀏覽器下載清單文件的新版本。

HTML5 應(yīng)用程序緩存(也稱為 AppCache)近來(lái)成為 Web 開(kāi)發(fā)人員關(guān)注的熱點(diǎn)話題。 AppCache 使您可以允許網(wǎng)站訪問(wèn)者在離線時(shí)瀏覽您的網(wǎng)站。您甚至可以將網(wǎng)站的部分內(nèi)容(例如圖像、樣式表或 Web 字體)存儲(chǔ)在用戶計(jì)算機(jī)上的緩存中。這可以幫助您的網(wǎng)站加載速度更快,從而減少服務(wù)器的負(fù)載。

要使用 AppCache,您可以創(chuàng)建一個(gè)擴(kuò)展名為“appcache”的清單文件,例如:manifest.appcache。在此文件中,您可以列出要緩存的所有文件。要在您的站點(diǎn)上啟用它,您必須在 html 元素的網(wǎng)頁(yè)上包含對(duì)該清單文件的引用,如下所示:

<html lang="en" manifest="manifest.appcache">

這是一個(gè)示例清單文件:

<code>CACHE MANIFEST
# 2015-01-23 v0.1
/style.css
/logo.gif
/script.js

NETWORK:
*

FALLBACK:
/server/ /fallback.html</code>

除了 AppCache 的好處之外,還有一些常見(jiàn)的陷阱應(yīng)該避免,以防止破壞用戶體驗(yàn)並破壞您的應(yīng)用程序。

切勿在清單文件中列出清單文件

如果您在應(yīng)用程序緩存清單中包含清單文件本身,它會(huì)陷入某種循環(huán),幾乎無(wú)法通知您的網(wǎng)站有新的緩存文件可用,並且它應(yīng)該下載並使用新的清單文件而不是舊的清單文件。因此,務(wù)必小心不要犯以下錯(cuò)誤:

<code>CACHE MANIFEST
# 2015-01-23 v0.1

manifest.appcache
page2.css</code>

緩存頁(yè)面上未緩存的資源不會(huì)加載

這是第一次使用 AppCache 時(shí)非常常見(jiàn)的錯(cuò)誤。這就是清單文件中的 NETWORK 標(biāo)誌發(fā)揮作用的地方。清單文件的 NETWORK 部分指定 Web 應(yīng)用程序需要在線訪問(wèn)的資源。

在 NETWORK 標(biāo)誌下指定的 URL 基本上是“白名單”,也就是說(shuō),在此標(biāo)誌下指定的文 件在有互聯(lián)網(wǎng)連接時(shí)始終從服務(wù)器加載。例如,以下代碼片段確保對(duì)加載包含在 /api/ 子樹(shù)中的資源的請(qǐng)求始終從網(wǎng)絡(luò)加載,而不是從緩存加載。

<html lang="en" manifest="manifest.appcache">

始終在服務(wù)器的 .htaccess 文件中設(shè)置應(yīng)用程序類型清單

清單文件應(yīng)始終在正確的媒體類型 text/cache-manifest 下提供服務(wù)。如果未設(shè)置媒體類型,則 AppCache 將無(wú)法工作。

它應(yīng)始終在生產(chǎn)服務(wù)器的 .htaccess 文件中配置。大多數(shù)講解 AppCache 的教程中都提到了這一點(diǎn),但在將 Web 應(yīng)用程序從開(kāi)發(fā)服務(wù)器遷移到生產(chǎn)服務(wù)器時(shí),許多開(kāi)發(fā)人員都會(huì)忽略這一點(diǎn)。

在 Apache 的 .htaccess 文件中輸入以下內(nèi)容:

<code>CACHE MANIFEST
# 2015-01-23 v0.1
/style.css
/logo.gif
/script.js

NETWORK:
*

FALLBACK:
/server/ /fallback.html</code>

如果您將應(yīng)用程序上傳到 Google App Engine,則可以通過(guò)將以下代碼段添加到 app.yaml 文件中來(lái)完成相同的任務(wù):

<code>CACHE MANIFEST
# 2015-01-23 v0.1

manifest.appcache
page2.css</code>

避免因找不到文件而丟棄整個(gè)清單

如果清單文件中指定的單個(gè)文件都找不到或無(wú)法下載,則整個(gè)清單文件將被丟棄。這是 AppCache 的一種奇怪的行為,在設(shè)計(jì)使用 AppCache 的 Web 應(yīng)用程序時(shí)應(yīng)牢記這一點(diǎn)。

例如:

<code>NETWORK:

/api</code>

如果刪除了 logo.gif,AppCache 將無(wú)法找到已刪除的圖像文件,因此清單文件中的任何內(nèi)容都不會(huì)執(zhí)行。

即使在線,數(shù)據(jù)也從 AppCache 加載

一旦您的 Web 瀏覽器保存了緩存清單文件,即使用戶已連接到互聯(lián)網(wǎng),文件也會(huì)從緩存清單本身加載。此功能有助於提高網(wǎng)站的加載速度,並有助於減少服務(wù)器負(fù)載。

服務(wù)器上的更改不會(huì)發(fā)生,直到清單文件更新

由於您從前一點(diǎn)知道即使用戶在線,數(shù)據(jù)也會(huì)從 AppCache 加載,因此對(duì)網(wǎng)站或服務(wù)器中文件的更改不會(huì)發(fā)生,直到清單文件更新。

更新網(wǎng)站後,您始終必須更新清單文件,否則您的用戶將永遠(yuǎn)無(wú)法看到更改,他們只會(huì)看到以前緩存的數(shù)據(jù)。您可以在清單文件中註釋中更新版本號(hào)或日期,以強(qiáng)制用戶的 Web 瀏覽器下載清單文件的新版本。例如,如果在對(duì)網(wǎng)站進(jìn)行更改之前,以下是您使用的清單文件:

<code>AddType text/cache-manifest .manifest</code>

它可以更改為類似於以下代碼塊的內(nèi)容,以便用戶的瀏覽器可以下載清單文件的新副本。

<code>- url: /public_html/(.*\.appcache)
  static_files: public_html/
  mime_type: text/cache-manifest
  upload: public_html/(.*\.appcache)</code>

請(qǐng)注意,以 # 開(kāi)頭的行是不會(huì)執(zhí)行的註釋行。

清單文件必須與主機(jī)來(lái)自相同的來(lái)源提供服務(wù)

儘管清單文件可以保存對(duì)要從其他域緩存的資源的引用,但它應(yīng)從與主機(jī)頁(yè)面相同的來(lái)源提供給 Web 瀏覽器。如果不是這種情況,則清單文件將無(wú)法加載。例如,以下清單文件是正確的:

<code>CACHE MANIFEST
# 2015-01-23 v0.1
/style.css
/logo.gif
/script.js</code>

在這裡,我們指定了要存儲(chǔ)在用戶瀏覽器緩存中的內(nèi)容,該內(nèi)容是從另一個(gè)域引用的,這完全沒(méi)問(wèn)題。

相對(duì) URL 相對(duì)於清單的 URL

需要注意的一件重要事情是,您在清單中提到的相對(duì) URL 相對(duì)於清單文件,而不是相對(duì)於您引用清單文件的文檔。如果清單和引用不在同一路徑中,則資源將無(wú)法加載,進(jìn)而清單文件將無(wú)法加載。

如果您的應(yīng)用程序結(jié)構(gòu)如下所示:

<html lang="en" manifest="manifest.appcache">

那麼您的清單文件應(yīng)如下所示:

<code>CACHE MANIFEST
# 2015-01-23 v0.1
/style.css
/logo.gif
/script.js

NETWORK:
*

FALLBACK:
/server/ /fallback.html</code>

以編程方式檢查清單的狀態(tài)

您可以通過(guò)測(cè)試 window.applicationCache.status 以編程方式檢查您的應(yīng)用程序是否正在使用緩存清單的更新版本。這是一些示例代碼:

<code>CACHE MANIFEST
# 2015-01-23 v0.1

manifest.appcache
page2.css</code>

在網(wǎng)站上運(yùn)行上述代碼可以讓你知道何時(shí)有 AppCache 清單的新更新可用。請(qǐng)注意,UPDATEREADY 是一個(gè)已定義的狀態(tài)。您甚至可以在 onUpdateReady() 函數(shù)中使用 swapCache() 方法來(lái)將舊的清單文件替換為新的清單文件:

<code>NETWORK:

/api</code>

結(jié)論

AppCache 是一項(xiàng)有用的技術(shù),但正如我們所看到的,在項(xiàng)目中實(shí)現(xiàn)它時(shí)應(yīng)謹(jǐn)慎。開(kāi)發(fā)人員應(yīng)選擇性地選擇應(yīng)在清單文件中包含的內(nèi)容。理想情況下,清單文件應(yīng)包含靜態(tài)內(nèi)容,例如樣式表、腳本、Web 字體和圖像。但是,您始終是對(duì)清單文件中包含哪些內(nèi)容的最佳判斷者。 Appcache 是一把雙刃劍,因此在使用它時(shí)要小心!

上述內(nèi)容中的大部分內(nèi)容已在其他地方介紹過(guò),還有一些其他要點(diǎn)。您可以查看以下資源以了解更多信息:

  • MDN 上的應(yīng)用程序緩存陷阱
  • Jake Archibald 的應(yīng)用程序緩存是個(gè)混蛋
  • Jake Archibald 的離線食譜

關(guān)於 HTML5 應(yīng)用程序緩存的常見(jiàn)問(wèn)題解答 (FAQ)

什麼是 HTML5 應(yīng)用程序緩存,為什麼它很重要?

HTML5 應(yīng)用程序緩存 (AppCache) 是一項(xiàng)允許開(kāi)發(fā)人員指定瀏覽器應(yīng)緩存哪些文件並使其可供用戶離線使用的功能。它之所以重要,是因?yàn)樗梢酝ㄟ^(guò)減少服務(wù)器負(fù)載和節(jié)省帶寬來(lái)提高 Web 應(yīng)用程序的性能。它還允許應(yīng)用程序即使在用戶離線時(shí)也能運(yùn)行,從而提供更好的用戶體驗(yàn)。

HTML5 應(yīng)用程序緩存是如何工作的?

HTML5 應(yīng)用程序緩存的工作原理是使用清單文件。此文件列出了瀏覽器應(yīng)緩存以供離線使用的資源。當(dāng)用戶訪問(wèn)網(wǎng)頁(yè)時(shí),瀏覽器會(huì)檢查是否與其關(guān)聯(lián)了清單文件。如果是,瀏覽器將下載並存儲(chǔ)列出的資源。下次用戶訪問(wèn)網(wǎng)頁(yè)時(shí),瀏覽器將加載緩存的資源,而不是從服務(wù)器下載它們。

使用 HTML5 應(yīng)用程序緩存時(shí)有哪些常見(jiàn)的陷阱?

使用 HTML5 應(yīng)用程序緩存時(shí),一些常見(jiàn)的陷阱包括:未正確更新清單文件,導(dǎo)致提供舊資源;未正確處理緩存清單回退部分,導(dǎo)致錯(cuò)誤;以及未考慮緩存對(duì)用戶設(shè)備存儲(chǔ)的影響。

如何避免這些陷阱?

為避免這些陷阱,請(qǐng)?jiān)谫Y源更改時(shí)始終正確更新清單文件。使用清單文件的 NETWORK 部分指定永遠(yuǎn)不應(yīng)該緩存的資源。此外,請(qǐng)考慮用戶的設(shè)備存儲(chǔ),並且只緩存必要的資源。

HTML5 應(yīng)用程序緩存的未來(lái)是什麼?

HTML5 應(yīng)用程序緩存正在被棄用,取而代之的是 Service Workers。 Service Workers 提供對(duì)緩存的更多控制,並且可以處理更複雜的場(chǎng)景。但是,目前並非所有瀏覽器都支持 Service Workers,因此了解和使用 HTML5 應(yīng)用程序緩存仍然很重要。

如何創(chuàng)建清單文件?

清單文件是一個(gè)簡(jiǎn)單的文本文件,其中列出了要緩存的資源。它應(yīng)該以 MIME 類型“text/cache-manifest”提供服務(wù)。文件的首行應(yīng)為“CACHE MANIFEST”,後跟要緩存的資源。

如何將網(wǎng)頁(yè)與清單文件關(guān)聯(lián)?

要將網(wǎng)頁(yè)與清單文件關(guān)聯(lián),請(qǐng)將“manifest”屬性添加到網(wǎng)頁(yè)的“html”標(biāo)記中。 “manifest”屬性的值應(yīng)為清單文件的 URL。

如何更新緩存?

要更新緩存,請(qǐng)對(duì)清單文件進(jìn)行更改。每次用戶訪問(wèn)網(wǎng)頁(yè)時(shí),瀏覽器都會(huì)檢查清單文件的更新。如果清單文件已更改,瀏覽器將下載並緩存新資源。

如果清單文件中列出的資源無(wú)法下載會(huì)發(fā)生什麼?

如果清單文件中列出的資源無(wú)法下載,則整個(gè)緩存更新過(guò)程將失敗。瀏覽器將繼續(xù)使用舊緩存。

我可以將 HTML5 應(yīng)用程序緩存用於所有資源嗎?

雖然從技術(shù)上講您可以將 HTML5 應(yīng)用程序緩存用於所有資源,但不建議這樣做。緩存過(guò)多的資源可能會(huì)填滿用戶的設(shè)備存儲(chǔ)並對(duì)性能產(chǎn)生負(fù)面影響。最好只緩存必要的資源。

以上是使用HTML5應(yīng)用程序緩存時(shí),常見(jiàn)的陷阱要避免的詳細(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)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
如何在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)定可靠的代碼。

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時(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)書(shū),要求取消該商標(biāo),他認(rèn)為JavaScript是一個(gè)開(kāi)放標(biāo)準(zhǔn),不應(yīng)由Oracle

什麼是緩存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ū)別。

處理諾言:鏈接,錯(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()(等待所有完成)

利用Array.Prototype方法用於JavaScript中的數(shù)據(jù)操作 利用Array.Prototype方法用於JavaScript中的數(shù)據(jù)操作 Jul 06, 2025 am 02:36 AM

JavaScript數(shù)組內(nèi)置方法如.map()、.filter()和.reduce()可簡(jiǎn)化數(shù)據(jù)處理;1).map()用於一對(duì)一轉(zhuǎn)換元素生成新數(shù)組;2).filter()按條件篩選元素;3).reduce()用於聚合數(shù)據(jù)為單一值;使用時(shí)應(yīng)避免誤用導(dǎo)致副作用或性能問(wèn)題。

JS綜述:深入研究JavaScript事件循環(huán) JS綜述:深入研究JavaScript事件循環(huán) Jul 08, 2025 am 02:24 AM

JavaScript的事件循環(huán)通過(guò)協(xié)調(diào)調(diào)用棧、WebAPI和任務(wù)隊(duì)列來(lái)管理異步操作。 1.調(diào)用棧執(zhí)行同步代碼,遇到異步任務(wù)時(shí)交由WebAPI處理;2.WebAPI在後臺(tái)完成任務(wù)後將回調(diào)放入相應(yīng)的隊(duì)列(宏任務(wù)或微任務(wù));3.事件循環(huán)檢查調(diào)用棧是否為空,若為空則從隊(duì)列中取出回調(diào)推入調(diào)用棧執(zhí)行;4.微任務(wù)(如Promise.then)優(yōu)先於宏任務(wù)(如setTimeout)執(zhí)行;5.理解事件循環(huán)有助於避免阻塞主線程並優(yōu)化代碼執(zhí)行順序。

See all articles