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

目錄
鑰匙要點(diǎn)
在本文的其余部分中,我想調(diào)查對(duì)Vanilla JavaScript中Ajax API的改進(jìn)??梢栽赪3C上找到整個(gè)規(guī)范。令我驚訝的是這個(gè)規(guī)范。它不再是“ xmlhttprequest級(jí)別2”,而是“ xmlhttprequest級(jí)別1”,這是兩個(gè)規(guī)格之間2011年合并的結(jié)果。展望未來(lái),它將從標(biāo)準(zhǔn)的角度將其視為一個(gè)實(shí)體,而生活水平將被稱為XMLHTTPREQUEST。這表明社區(qū)有承諾堅(jiān)持一個(gè)標(biāo)準(zhǔn),這對(duì)于想要擺脫jQuery的開(kāi)發(fā)人員而言,這只會(huì)意味著好消息。
html看起來(lái)不錯(cuò)又整潔。如您所見(jiàn),所有興奮都在JavaScript中發(fā)生。
這就是響應(yīng)的樣子:
如何使用vanilla javaScript?

var xhr = new xmlhttprequest(); xhr.open(“ get”,'https://api.example.com/data',true) xhr.onreadystatechange = function(){
if(xhr.readystate == 4 && xhr.status ===== 200)
console.log(json.parse(xhr.responseText));
}
xhr.send();
>

>我如何處理香草ajax中的錯(cuò)誤?可以使用XMLHTTPREQUEST對(duì)象的OnError事件處理程序完成

var xhr = new xmlhttpRequest();

xhr.open(“ get”,'https://api.example.com/data',true) 。失敗的“);

>是的,但是不建議這樣做,因?yàn)樗梢宰柚鼓_本的執(zhí)行并使您的網(wǎng)頁(yè)無(wú)反應(yīng)互動(dòng),但不建議這樣做。 。要提出同步請(qǐng)求,請(qǐng)將false作為第三個(gè)參數(shù)傳遞到打開(kāi)的方法。
首頁(yè) web前端 js教程 沒(méi)有jQuery的香草·阿賈克斯的指南

沒(méi)有jQuery的香草·阿賈克斯的指南

Feb 19, 2025 am 11:58 AM

沒(méi)有jQuery的香草·阿賈克斯的指南

鑰匙要點(diǎn)

    ajax,用于異步JavaScript和XML的縮寫(xiě),允許部分頁(yè)面更新,減少了整頁(yè)刷新的需求,并啟用了更多流暢的用戶體驗(yàn)。 AJAX請(qǐng)求的基本解剖結(jié)構(gòu)涉及為HTTP請(qǐng)求創(chuàng)建所需類的實(shí)例,指定HTTP請(qǐng)求方法和頁(yè)面的URL并發(fā)送請(qǐng)求。
  • 雖然jQuery可以簡(jiǎn)化AJAX請(qǐng)求,但并非總是必要的。 Vanilla JavaScript中的Ajax API經(jīng)歷了重大改進(jìn),從標(biāo)準(zhǔn)角度來(lái)看,XMLHTTPreQuest規(guī)范現(xiàn)在被視為一個(gè)單一實(shí)體,表明社區(qū)承諾堅(jiān)持一個(gè)標(biāo)準(zhǔn)。 Ajax是異步JavaScript和XML的簡(jiǎn)短,AJAX是一種進(jìn)行部分頁(yè)面更新的機(jī)制。它使您能夠使用來(lái)自服務(wù)器的數(shù)據(jù)更新頁(yè)面的部分,同時(shí)避免需要進(jìn)行完整的刷新。以這種方式進(jìn)行部分更新可以有效地創(chuàng)建流體用戶體驗(yàn),并且可以減少服務(wù)器上的負(fù)載。
  • 這是基本Ajax請(qǐng)求的解剖學(xué):
>在這里,我們正在創(chuàng)建所需類的實(shí)例,以向服務(wù)器提出HTTP請(qǐng)求。然后,我們調(diào)用其開(kāi)放方法,將HTTP請(qǐng)求方法指定為第一個(gè)參數(shù),以及我們要求的頁(yè)面的URL。最后,我們將其發(fā)送方法稱為NULL作為參數(shù)。如果在請(qǐng)求后(在這里我們使用的是GET),則此參數(shù)應(yīng)包含我們要發(fā)送請(qǐng)求的任何數(shù)據(jù)。

>這就是我們處理服務(wù)器的響應(yīng)的方式:

>

var xhr = new XMLHttpRequest();
xhr.open('GET', 'send-ajax-data.php');
xhr.send(null);
> onreadystatechange是異步的,這意味著它隨時(shí)被調(diào)用。這些類型的功能是回調(diào) - 一旦處理完成后,它就會(huì)被調(diào)用。在這種情況下,處理器正在服務(wù)器上進(jìn)行。

>

對(duì)于那些希望更多地了解Ajax基礎(chǔ)知識(shí)的人,MDN網(wǎng)絡(luò)有一個(gè)很好的指南。

到j(luò)Query還是不jQuery?

> 因此,好消息是上述代碼將在所有最新的主要瀏覽器中起作用。壞消息是,它非常令人費(fèi)解。好!我已經(jīng)在尋找優(yōu)雅的解決方案。
xhr.onreadystatechange = function () {
  var DONE = 4; // readyState 4 means the request is done.
  var OK = 200; // status 200 is a successful return.
  if (xhr.readyState === DONE) {
    if (xhr.status === OK) {
      console.log(xhr.responseText); // 'This is the returned text.'
    } else {
      console.log('Error: ' + xhr.status); // An error occurred during the request.
    }
  }
};
>

使用jQuery,可以將整個(gè)片段濃縮為:>

這很好。確實(shí),對(duì)于包括您在內(nèi)的許多人來(lái)說(shuō),JQuery在Ajax方面已成為事實(shí)上的標(biāo)準(zhǔn)。但是,你知道嗎?不必是這樣。存在jQuery來(lái)繞過(guò)丑陋的DOM API。但是,真的是

丑陋的嗎?還是難以理解?

在本文的其余部分中,我想調(diào)查對(duì)Vanilla JavaScript中Ajax API的改進(jìn)。可以在W3C上找到整個(gè)規(guī)范。令我驚訝的是這個(gè)規(guī)范。它不再是“ xmlhttprequest級(jí)別2”,而是“ xmlhttprequest級(jí)別1”,這是兩個(gè)規(guī)格之間2011年合并的結(jié)果。展望未來(lái),它將從標(biāo)準(zhǔn)的角度將其視為一個(gè)實(shí)體,而生活水平將被稱為XMLHTTPREQUEST。這表明社區(qū)有承諾堅(jiān)持一個(gè)標(biāo)準(zhǔn),這對(duì)于想要擺脫jQuery的開(kāi)發(fā)人員而言,這只會(huì)意味著好消息。

>

所以讓我們開(kāi)始吧……

>

>設(shè)置

在本文中,我在后端使用node.js。是的,瀏覽器和服務(wù)器上將有JavaScript。 Node.js后端很精美,我鼓勵(lì)您在Github上下載整個(gè)演示并跟隨。這是服務(wù)器上的肉和土豆:

>

這將檢查請(qǐng)求URL,以確定應(yīng)用程序應(yīng)如何響應(yīng)。如果請(qǐng)求來(lái)自腳本目錄,則將適當(dāng)?shù)奈募c應(yīng)用程序/JavaScript的內(nèi)容類型一起提供。否則,如果已將請(qǐng)求的X重新抽出標(biāo)題設(shè)置為XMLHTTPRequest,那么我們知道我們正在處理AJAX請(qǐng)求,并且可以做出適當(dāng)?shù)捻憫?yīng)。如果沒(méi)有這樣的情況,則提供文件視圖/index.html。
var xhr = new XMLHttpRequest();
xhr.open('GET', 'send-ajax-data.php');
xhr.send(null);
>我將在我們潛入服務(wù)器中的AJAX響應(yīng)中,擴(kuò)展評(píng)論的部分。在node.js中,我不得不對(duì)渲染和httphandler進(jìn)行一些重彈性:

渲染函數(shù)異步讀取所請(qǐng)求的文件的內(nèi)容。它通過(guò)對(duì)HTTPhandler函數(shù)的引用,然后將其作為回調(diào)執(zhí)行。 httphandler函數(shù)檢查是否存在錯(cuò)誤對(duì)象(例如,如果無(wú)法打開(kāi)所請(qǐng)求的文件)。提供一切都很好,然后使用適當(dāng)?shù)腍TTP狀態(tài)代碼和內(nèi)容類型為文件的內(nèi)容提供服務(wù)。

>
xhr.onreadystatechange = function () {
  var DONE = 4; // readyState 4 means the request is done.
  var OK = 200; // status 200 is a successful return.
  if (xhr.readyState === DONE) {
    if (xhr.status === OK) {
      console.log(xhr.responseText); // 'This is the returned text.'
    } else {
      console.log('Error: ' + xhr.status); // An error occurred during the request.
    }
  }
};
測(cè)試API

喜歡使用任何聲音后端API,讓我們編寫(xiě)一些單元測(cè)試以確保其有效。對(duì)于這些測(cè)試,我正在呼吁Supertest和Mocha尋求幫助:>

這些確保我們的應(yīng)用程序以正確的內(nèi)容類型和HTTP狀態(tài)代碼響應(yīng)不同的請(qǐng)求。安裝了依賴項(xiàng)后,您可以使用NPM測(cè)試從命令中運(yùn)行這些測(cè)試。

接口
$.ajax({
  url: 'send-ajax-data.php',
})
.done(function(res) {
  console.log(res);
})
.fail(function(err) {
  console.log('Error: ' + err.status);
});

現(xiàn)在,讓我們看一下我們?cè)趆tml中構(gòu)建的用戶界面:

html看起來(lái)不錯(cuò)又整潔。如您所見(jiàn),所有興奮都在JavaScript中發(fā)生。

> >如果您瀏覽任何規(guī)范的Ajax書(shū),您可能會(huì)發(fā)現(xiàn)到處都有現(xiàn)有狀態(tài)。此回調(diào)功能帶有嵌套的IF和許多絨毛,這使得很難記住頭頂。讓我們將現(xiàn)有狀態(tài)和on載事件直接放在頭上。

>

var xhr = new XMLHttpRequest();
xhr.open('GET', 'send-ajax-data.php');
xhr.send(null);
這是控制臺(tái)中的輸出:

沒(méi)有jQuery的香草·阿賈克斯的指南 成功

時(shí),Onload事件才會(huì)發(fā)射。因此,Onload事件是您可以在幾秒鐘內(nèi)充分利用的現(xiàn)代API?,F(xiàn)有的事件將有向后兼容。但是,Onload事件應(yīng)該是您選擇的工具。 Onload事件看起來(lái)像是JQuery上的成功回調(diào),不是嗎? 是時(shí)候?qū)?磅的啞鈴放在一邊,然后移動(dòng)到手臂卷發(fā)了。

>設(shè)置請(qǐng)求標(biāo)頭

jQuery設(shè)置封面下的請(qǐng)求標(biāo)頭,因此您的后端技術(shù)知道這是AJAX請(qǐng)求。通常,后端不在乎get請(qǐng)求只要發(fā)送適當(dāng)?shù)捻憫?yīng)即可到達(dá)何處。當(dāng)您想使用相同的Web API支持Ajax和HTML時(shí),這很方便。因此,讓我們看一下如何在Vanilla Ajax中設(shè)置請(qǐng)求標(biāo)題:>

>這樣,我們可以在Node.js中進(jìn)行檢查:

如您所見(jiàn),Vanilla Ajax是靈活而現(xiàn)代的前端API。您可以使用請(qǐng)求標(biāo)題有很多想法,其中之一是版本化。因此,例如,假設(shè)我想支持此Web API的多個(gè)版本。這很有用,因?yàn)楫?dāng)我不想打破URL并提供一種機(jī)制,客戶可以選擇他們想要的版本。我們可以這樣設(shè)置請(qǐng)求標(biāo)頭:

xhr.onreadystatechange = function () {
  var DONE = 4; // readyState 4 means the request is done.
  var OK = 200; // status 200 is a successful return.
  if (xhr.readyState === DONE) {
    if (xhr.status === OK) {
      console.log(xhr.responseText); // 'This is the returned text.'
    } else {
      console.log('Error: ' + xhr.status); // An error occurred during the request.
    }
  }
};
在后端,請(qǐng)嘗試:

>

$.ajax({
  url: 'send-ajax-data.php',
})
.done(function(res) {
  console.log(res);
})
.fail(function(err) {
  console.log('Error: ' + err.status);
});
>我們?cè)诩抑校瑳](méi)有汗水!您可能想知道,關(guān)于Ajax還有什么要知道的?好幾個(gè)整潔的技巧。

>

響應(yīng)類型
// app.js
var app = http.createServer(function (req, res) {
  if (req.url.indexOf('/scripts/') >= 0) {
    render(req.url.slice(1), 'application/javascript', httpHandler);
  } else if (req.headers['x-requested-with'] === 'XMLHttpRequest') {
    // Send Ajax response
  } else {
    render('views/index.html', 'text/html', httpHandler);
  }
});

>您可能想知道,當(dāng)我與之合作時(shí),為什么ResponseText包含服務(wù)器響應(yīng),這就是普通的舊json。事實(shí)證明,這是因?yàn)槲覜](méi)有設(shè)置適當(dāng)?shù)闹匦露ㄐ?。此AJAX屬性非常適合告訴前端API對(duì)服務(wù)器對(duì)期望的響應(yīng)類型。因此,讓我們充分利用它:

var xhr = new XMLHttpRequest();
xhr.open('GET', 'send-ajax-data.php');
xhr.send(null);
很棒的,我可以告訴API的期望,而不必退回純文本,而不得不將其解析為JSON。幾乎所有最新的主要瀏覽器都可以使用此功能。當(dāng)然,jQuery會(huì)自動(dòng)進(jìn)行這種類型的轉(zhuǎn)換。但是,我們現(xiàn)在有一種方便的方式在普通的JavaScript中做同樣的事情,這不是很棒嗎? Vanilla Ajax對(duì)許多其他響應(yīng)類型都有支持,包括XML。 可悲的是,在Internet Explorer中,這個(gè)故事并不那么出色。截至IE 11,該團(tuán)隊(duì)尚未增加對(duì)Xhr.ResponseType ='json'的支持。此功能將到達(dá)Microsoft Edge。但是,截至撰寫(xiě)本文時(shí),該錯(cuò)誤已經(jīng)近兩年了。我的猜測(cè)是微軟的人們一直在努力改造瀏覽器。希望我們希望Microsoft Edge(又名Spartan項(xiàng)目)能兌現(xiàn)其承諾。

a,如果您必須解決這個(gè)問(wèn)題:

>

>緩存破壞

>人們傾向于忘記的一個(gè)瀏覽器功能是緩存AJAX請(qǐng)求的能力。例如,Internet Explorer默認(rèn)情況下會(huì)這樣做。我曾經(jīng)掙扎著幾個(gè)小時(shí),試圖弄清為什么我的Ajax因此因此而無(wú)法工作。幸運(yùn)的是,JQuery默認(rèn)情況下會(huì)破壞瀏覽器緩存。好吧,您也可以在普通的ajax中,這很簡(jiǎn)單:
xhr.onreadystatechange = function () {
  var DONE = 4; // readyState 4 means the request is done.
  var OK = 200; // status 200 is a successful return.
  if (xhr.readyState === DONE) {
    if (xhr.status === OK) {
      console.log(xhr.responseText); // 'This is the returned text.'
    } else {
      console.log('Error: ' + xhr.status); // An error occurred during the request.
    }
  }
};
>

根據(jù)jQuery文檔,它所做的只是將時(shí)間戳查詢字符串附加到請(qǐng)求的末尾。這使請(qǐng)求有些獨(dú)特,并破壞了瀏覽器緩存。發(fā)射http ajax請(qǐng)求時(shí),您可以看到這是什么樣子:

$.ajax({
  url: 'send-ajax-data.php',
})
.done(function(res) {
  console.log(res);
})
.fail(function(err) {
  console.log('Error: ' + err.status);
});
tada!一切都沒(méi)有戲劇。

結(jié)論

沒(méi)有jQuery的香草·阿賈克斯的指南>希望您喜歡300磅的臥推香草·阿賈克斯(Vanilla Ajax)。一段時(shí)間以來(lái),阿賈克斯是一個(gè)可怕的野獸,但不再是。實(shí)際上,我們涵蓋了Ajax的所有基礎(chǔ)知識(shí),而沒(méi)有拐杖,sha骨,jQuery。

我會(huì)以簡(jiǎn)潔的方式給您打電話:

>

這就是響應(yīng)的樣子:

別忘了,您可以在Github上找到整個(gè)演示。我歡迎您在評(píng)論中聽(tīng)到和沒(méi)有jQuery的想法。
// app.js
var app = http.createServer(function (req, res) {
  if (req.url.indexOf('/scripts/') >= 0) {
    render(req.url.slice(1), 'application/javascript', httpHandler);
  } else if (req.headers['x-requested-with'] === 'XMLHttpRequest') {
    // Send Ajax response
  } else {
    render('views/index.html', 'text/html', httpHandler);
  }
});
>

在沒(méi)有jQuery

的香草ajax上的常見(jiàn)問(wèn)題(常見(jiàn)問(wèn)題解答) 沒(méi)有jQuery的香草·阿賈克斯的指南

vanilla ajax是指使用本機(jī)JavaScript創(chuàng)建異步的Web應(yīng)用程序,而無(wú)需依靠JQuery庫(kù)。盡管JQuery Ajax提供了一種簡(jiǎn)化的跨瀏覽器兼容方法來(lái)處理Ajax,但Vanilla Ajax可以使您對(duì)基礎(chǔ)過(guò)程有更多的控制和理解。如果您想減少諸如JQuery之類的外部庫(kù)的依賴關(guān)系。

>,這也是一個(gè)不錯(cuò)的選擇。

如何使用vanilla javaScript?

var xhr = new xmlhttprequest(); xhr.open(“ get”,'https://api.example.com/data',true) xhr.onreadystatechange = function(){
if(xhr.readystate == 4 && xhr.status ===== 200)
console.log(json.parse(xhr.responseText));
}
xhr.send();
>

>我如何處理香草ajax中的錯(cuò)誤?可以使用XMLHTTPREQUEST對(duì)象的OnError事件處理程序完成

var xhr = new xmlhttpRequest();

xhr.open(“ get”,'https://api.example.com/data',true) 。失敗的“);

};

xhr.send();
var xhr = new xmlhttprequest(); xhr.open(“ post”,'https://api.example.com/data',true) .setRequestheader(“ content-type”, “ application/json”);
xhr.send(json.stringify({key:“ value”}));

如何在Vanilla Javascript中取消AJAX請(qǐng)求? >您可以通過(guò)調(diào)用xmlhttprequest對(duì)象的中止方法來(lái)取消AJAX請(qǐng)求。這將立即終止請(qǐng)求。

>我可以使用vanilla javascript?

>是的,但是不建議這樣做,因?yàn)樗梢宰柚鼓_本的執(zhí)行并使您的網(wǎng)頁(yè)無(wú)反應(yīng)互動(dòng),但不建議這樣做。 。要提出同步請(qǐng)求,請(qǐng)將false作為第三個(gè)參數(shù)傳遞到打開(kāi)的方法。

>

>如何監(jiān)視AJAX請(qǐng)求的進(jìn)度?

您可以使用AJAX請(qǐng)求的進(jìn)度來(lái)監(jiān)視AJAX請(qǐng)求的進(jìn)度XMLHTTPREQUEST對(duì)象的OnProgress事件處理程序。此事件是多次觸發(fā)的,提供了當(dāng)前的進(jìn)度信息。

>我可以與其他JavaScript庫(kù)或框架一起使用Vanilla Ajax? 。這是本機(jī)JavaScript功能,不依賴任何外部庫(kù)。

>所有現(xiàn)代瀏覽器都支持

以上是沒(méi)有jQuery的香草·阿賈克斯的指南的詳細(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)

熱門(mén)話題

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ò)誤。

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

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

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

JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.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ī)和方式。

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

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

如何減少JavaScript應(yīng)用程序的有效載荷大??? 如何減少JavaScript應(yīng)用程序的有效載荷大??? Jun 26, 2025 am 12:54 AM

如果JavaScript應(yīng)用加載慢、性能差,問(wèn)題往往出在payload太大,解決方法包括:1.使用代碼拆分(CodeSplitting),通過(guò)React.lazy()或構(gòu)建工具將大bundle拆分為多個(gè)小文件,按需加載以減少首次下載量;2.移除未使用的代碼(TreeShaking),利用ES6模塊機(jī)制清除“死代碼”,確保引入的庫(kù)支持該特性;3.壓縮和合并資源文件,啟用Gzip/Brotli和Terser壓縮JS,合理合并文件并優(yōu)化靜態(tài)資源;4.替換重型依賴,選用輕量級(jí)庫(kù)如day.js、fetch

See all articles