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

目錄
#認(rèn)識(shí) Underscore.js
下劃線的實(shí)際應(yīng)用
很好,但我真的需要這個(gè)嗎?
開(kāi)始使用
函數(shù)式還是物件導(dǎo)向?
檢查功能
集合
採(cǎi)摘
地圖
全部
數(shù)組
Uniq
范圍
交叉路口
對(duì)象
鍵和值
默認(rèn)值
函數(shù)
綁定
實(shí)用程序
模板化
仍然不相信你應(yīng)該選擇這個(gè)
首頁(yè) CMS教程 &#&按 擁抱 Underscore.js 的溫暖

擁抱 Underscore.js 的溫暖

Aug 28, 2023 pm 02:53 PM

擁抱 Underscore.js 的溫暖

隨著 JavaScript 慢慢移出瀏覽器,出現(xiàn)了一些可以顯著提升 JavaScript 穩(wěn)健性的工具。

其中一個(gè)工具稱(chēng)為 Underscore.js,這是我們今天要介紹的工具。讓我們開(kāi)始吧!


#認(rèn)識(shí) Underscore.js

那Underscore到底是做什麼的?

Underscore 是一個(gè) JavaScript 實(shí)用工具庫(kù),它提供了許多您在 Prototype.js(或 Ruby)中所期望的函數(shù)式程式設(shè)計(jì)支持,但沒(méi)有擴(kuò)展任何內(nèi)建 JavaScript 物件。

塊引用>

使用 Python 或 Ruby 工作的好處之一是像 map 這樣的奇特結(jié)構(gòu),它讓生活變得更輕鬆。遺憾的是,目前版本的 JavaScript 在低階實(shí)用程式方面相當(dāng)簡(jiǎn)陋。

正如您在上面所讀到的,Underscore.js 是一個(gè)漂亮的小型 JavaScript 庫(kù),它以?xún)H 4kb 的大小帶來(lái)了數(shù)量驚人的功能。


下劃線的實(shí)際應(yīng)用

“關(guān)於圖書(shū)館的廢話已經(jīng)夠多了”,我可以聽(tīng)到你說(shuō)。你是對(duì)的!在我繼續(xù)我的大喊大叫之前,讓我們先看看 Underscore 的運(yùn)行情況。

假設(shè)您有一組隨機(jī)的測(cè)驗(yàn)分?jǐn)?shù),並且您需要一個(gè)包含 90 分?jǐn)?shù)的清單。您通常會(huì)寫(xiě)這樣的內(nèi)容:

var scores = [84, 99, 91, 65, 87, 55, 72, 68, 95, 42], 
topScorers = [], scoreLimit = 90;

for (i=0; i<=scores.length; i++)
{
	if (scores[i]>scoreLimit)
	{
		topScorers.push(scores[i]);
	}
}

console.log(topScorers);

它非常簡(jiǎn)單,即使進(jìn)行了優(yōu)化,對(duì)於我們想要做的事情來(lái)說(shuō)也相當(dāng)冗長(zhǎng)。

讓我們看看接下來(lái)可以使用 Underscore 實(shí)現(xiàn)什麼目標(biāo)。


var scores = [84, 99, 91, 65, 87, 55, 72, 68, 95, 42], 
topScorers = [], scoreLimit = 90;

topScorers = _.select(scores, function(score){ return score > scoreLimit;});

console.log(topScorers);

我不了解你,但我只是有一種書(shū)呆子氣。這是一些令人難以置信的簡(jiǎn)潔可讀的程式碼。


很好,但我真的需要這個(gè)嗎?

嗯,這完全取決於您想要做什麼。如果您對(duì) JavaScript 的使用僅限於玩弄 DOM,那麼答案大多是否定的,因?yàn)?jQuery 可以完成您想做的大部分事情。

是的。

另一方面,如果您正在處理非 DOM 程式碼甚至複雜程式碼,請(qǐng)考慮 MVC、前端程式碼,Underscore 絕對(duì)是一個(gè)福音。

雖然該程式庫(kù)公開(kāi)的一些功能正在慢慢進(jìn)入 ECMA 規(guī)範(fàn),但它並非在所有瀏覽器中都可用,並且讓您的程式碼跨瀏覽器工作本身就是另一個(gè)噩夢(mèng)。 Underscore 為您提供了一組很好的抽象,可以在任何地方使用。

如果您是一個(gè)以性能為導(dǎo)向的人(您應(yīng)該如此),Underscore 會(huì)回退到本機(jī)實(shí)現(xiàn)(如果可用),以確保性能盡可能最佳。


開(kāi)始使用

只需在此處取得原始程式碼,將其包含在您的頁(yè)面中即可。

如果您期待一個(gè)大型的設(shè)定過(guò)程,那麼您將會(huì)非常失望。只需在此處獲取原始程式碼,將其包含在您的頁(yè)面中即可。

Underscore 在全域範(fàn)圍內(nèi)透過(guò)單一物件建立並公開(kāi)其所有功能。該物件是標(biāo)題下劃線字元 _。

如果您想知道,是的,這與 jQuery 使用美元 [$] 符號(hào)的方式非常相似。就像 jQuery 一樣,您可以重新映射此字符,以防遇到衝突?;蛘撸绻裎乙粯訉?duì)波形符有一種非理性的喜愛(ài)。


函數(shù)式還是物件導(dǎo)向?

雖然該函式庫(kù)的官方行銷(xiāo)宣傳聲稱(chēng)它添加了函數(shù)式程式設(shè)計(jì)支持,但實(shí)際上還有另一種做事方式。

讓我們以之前的程式碼為例:


var scores = [84, 99, 91, 65, 87, 55, 72, 68, 95, 42], topScorers = [], scoreLimit = 90;

topScorers = _.select(scores, function(score){ return score > scoreLimit;});

console.log(topScorers);

上面的方法是功能性或程序性方法。您也可以使用更直接、可能更明顯的物件導(dǎo)向方法。


var scores = [84, 99, 91, 65, 87, 55, 72, 68, 95, 42], topScorers = [], scoreLimit = 90;

topScorers = _(scores).select(function(score){ return score > scoreLimit;});

console.log(topScorers);

沒(méi)有真正的「正確」方法來(lái)做事,但請(qǐng)記住,您可以使用後一種方法連結(jié) jQuery 式方法。


檢查功能

Underscore 提供了 60 多個(gè)函數(shù),涵蓋了多種功能。從本質(zhì)上講,它們可以分為幾組功能,這些功能運(yùn)行於:

  • 收藏
  • 陣列
  • 物件
  • 函數(shù)
  • 實(shí)用程式

讓我們看看每個(gè)部分的作用,如果適用,每個(gè)部分中我最喜歡的一兩個(gè)。


集合

集合可以是數(shù)組,也可以是對(duì)象,如果我在語(yǔ)意上是正確的,則可以是 JavaScript 中的關(guān)聯(lián)數(shù)組。

Underscore提供了許多對(duì)集合進(jìn)行操作的方法。我們之前看到了 select 方法。這裡有一些更非常有用的。

採(cǎi)摘

#假設(shè)您有一個(gè)包含鍵值對(duì)的漂亮小數(shù)組,並且您想要從每個(gè)數(shù)組中提取一個(gè)特定的屬性。有了 Underscore,一切就輕鬆了。


var Tuts = [{name : 'NetTuts', niche : 'Web Development'}, {name : 'WPTuts', niche : 'WordPress'}, {name : 'PSDTuts', niche : 'PhotoShop'}, {name : 'AeTuts', niche : 'After Effects'}];
var niches = _.pluck(Tuts, 'niche');

console.log(niches);

// ["Web Development", "WordPress", "PhotoShop", "After Effects"]

使用 pluck 就像傳入目標(biāo)物件或陣列以及選擇哪個(gè)屬性一樣簡(jiǎn)單。在這裡,我只是提取每個(gè)網(wǎng)站的利基市場(chǎng)。

地圖

Map 從集合建立一個(gè)數(shù)組,其中每個(gè)元素都可以透過(guò)函數(shù)進(jìn)行變異或以其他方式變更。

讓我們以前面的示例為例并對(duì)其進(jìn)行一些擴(kuò)展。


var Tuts = [{name : 'NetTuts', niche : 'Web Development'}, {name : 'WPTuts', niche : 'WordPress'}, {name : 'PSDTuts', niche : 'PhotoShop'}, {name : 'AeTuts', niche : 'After Effects'}];

var names = _(Tuts).pluck('name').map(function (value){return value + '+'});

console.log(names);

// ["NetTuts+", "WPTuts+", "PSDTuts+", "AeTuts+"]

由于我注意到名稱(chēng)末尾缺少加號(hào),因此我將它們添加到提取的數(shù)組中。

這里您不僅限于簡(jiǎn)單的串聯(lián)。您可以根據(jù)自己的意愿隨意修改傳遞的值。

全部

all 如果您需要檢查集合中的每個(gè)值是否滿足特定條件,則非常有用。例如,檢查學(xué)生是否通過(guò)了每個(gè)科目。


var Scores = [95, 82, 98, 78, 65];
var hasPassed = _(Scores).all(function (value){return value>50; });

console.log(hasPassed);

// true

數(shù)組

Underscore 有很多專(zhuān)門(mén)處理數(shù)組的函數(shù),這是非常受歡迎的,因?yàn)榕c其他語(yǔ)言相比,JavaScript 提供的處理數(shù)組的方法非常少。

Uniq

此方法基本上解析數(shù)組并刪除所有重復(fù)元素,只為您提供唯一元素。


var uniqTest = _.uniq([1,5,4,4,5,2,1,1,3,2,2,3,4,1]);

console.log(uniqTest);

// [1, 5, 4, 2, 3]

當(dāng)您解析巨大的數(shù)據(jù)集并需要清除重復(fù)項(xiàng)時(shí),這非常方便。請(qǐng)記住,僅計(jì)算元素的第一個(gè)實(shí)例,因此保留原始順序。

范圍

一種非常方便的方法,可讓您創(chuàng)建“范圍”或數(shù)字列表。讓我們看一個(gè)超級(jí)簡(jiǎn)單的例子。


var tens = _.range(0, 100, 10);

console.log(tens);

// [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]

該方法的參數(shù)依次為起始值、結(jié)束值和步長(zhǎng)值。如果您想知道,使用負(fù)步長(zhǎng)值會(huì)導(dǎo)致遞減范圍。

交叉路口

此方法將兩個(gè)數(shù)組相互比較,并返回在所有傳遞的數(shù)組中找到的元素列表,即集合論中的交集。

讓我們擴(kuò)展前面的示例來(lái)看看它是如何工作的。


var tens = _.range(0, 100, 10), eights = _.range(0, 100, 8), fives = _.range(0, 100, 5);

var common = _.intersection(tens, eights, fives );

console.log(common);

// [0, 40, 80]

很簡(jiǎn)單,對(duì)吧?您只需傳入要比較的數(shù)組列表,Underscore 就會(huì)完成剩下的工作。


對(duì)象

除了預(yù)期的 is 檢查之外,Underscore 還提供了各種方法來(lái)克隆、擴(kuò)展和其他操作對(duì)象。

這是我最喜歡的一些。

鍵和值

有一個(gè)巨大的對(duì)象,您只需要鍵或只需要值?使用 Underscore 真是太簡(jiǎn)單了。


var Tuts = { NetTuts : 'Web Development',  WPTuts : 'WordPress',  PSDTuts : 'PhotoShop', AeTuts : 'After Effects'};
var keys = _.keys(Tuts), values = _.values(Tuts);

console.log(keys + values);

// NetTuts,WPTuts,PSDTuts,AeTutsWeb Development,WordPress,PhotoShop,After Effects

默認(rèn)值

當(dāng)您需要?jiǎng)?chuàng)建具有合理默認(rèn)值的對(duì)象(而創(chuàng)建對(duì)象時(shí)可能不會(huì)使用該默認(rèn)值)時(shí),此方法非常有用。


var tuts = { NetTuts : 'Web Development'};
var defaults = { NetTuts : 'Web Development', niche: 'Education'};

_.defaults(tuts, defaults);

console.log(tuts);

// Object { NetTuts="Web Development", niche="Education"}

函數(shù)

盡管聽(tīng)起來(lái)很奇怪,Underscore 的函數(shù)可以作用于函數(shù)。大多數(shù)函數(shù)在這里解釋起來(lái)往往相當(dāng)復(fù)雜,因此我們將看一下最簡(jiǎn)單的函數(shù)。

綁定

this 是 JavaScript 中難以捉摸的一部分,往往會(huì)讓很多開(kāi)發(fā)人員感到非常困惑。此方法旨在使其更容易解決。


var o = { greeting: "Howdy" }, 
	f = function(name) { return this.greeting +" "+ name; };

  var greet = _.bind(f, o); 

  greet("Jess")

這有點(diǎn)令人困惑,所以請(qǐng)留在這兒。綁定函數(shù)基本上讓您無(wú)論何時(shí)何地調(diào)用該函數(shù)都可以保留 this 的值。

當(dāng)您使用 this 被劫持的事件處理程序時(shí),這特別有用。


實(shí)用程序

為了進(jìn)一步提高交易的吸引力,Underscore 提供了大量的實(shí)用函數(shù)。由于我們的時(shí)間已經(jīng)不多了,所以讓我們看看重要的事情。

模板化

已經(jīng)有大量的模板解決方案,但 Underscore 的解決方案因其實(shí)現(xiàn)相當(dāng)小而功能相當(dāng)強(qiáng)大而值得一看。

讓我們看一個(gè)快速示例。


var data =   {site: 'NetTuts'}, template =   'Welcome! You are at <%= site %>';

var parsedTemplate = _.template(template,  data );

console.log(parsedTemplate);

// Welcome! You are at NetTuts

首先,我們創(chuàng)建數(shù)據(jù)來(lái)填充模板,然后創(chuàng)建模板本身。默認(rèn)情況下,Underscore 使用 ERB 樣式分隔符,盡管這是完全可自定義的。

有了這些,我們就可以簡(jiǎn)單地調(diào)用 template 來(lái)傳遞我們的模板和數(shù)據(jù)。我們將結(jié)果存儲(chǔ)在一個(gè)單獨(dú)的字符串中,以便稍后根據(jù)需要用于更新內(nèi)容。

請(qǐng)記住,這是 Underscore 模板的極其簡(jiǎn)單的演示。您可以使用 分隔符在模板內(nèi)使用任何 JavaScript 代碼。當(dāng)您需要迭代復(fù)雜的對(duì)象(例如 JSON 源)時(shí),您可以與 Underscore 出色的集合函數(shù)配合來(lái)快速創(chuàng)建模板。


仍然不相信你應(yīng)該選擇這個(gè)

jQuery 和 Underscore 齊頭并進(jìn)。

不不不,你們都錯(cuò)了!如果說(shuō)有什么不同的話,那就是 jQuery 和 Underscore 相輔相成,齊頭并進(jìn)。真的!

看,jQuery 在一些事情上做得非常好。其中最主要的是 DOM 操作和動(dòng)畫(huà)。它不涉及較高或較低級(jí)別的任何內(nèi)容。如果像 Backbone 或 Knockout 這樣的框架處理更高級(jí)別的問(wèn)題,那么 Underscore 可以解決所有相對(duì)裸機(jī)的問(wèn)題。

從更廣泛的角度來(lái)看,jQuery 在瀏覽器之外沒(méi)有什么用途,因?yàn)樗拇蟛糠止δ芏寂c DOM 相關(guān)。另一方面,下劃線可以在瀏覽器或服務(wù)器端使用,沒(méi)有任何問(wèn)題。事實(shí)上,Underscore 依賴(lài)它的 Node 模塊數(shù)量最多。

好了,今天就講到這里??紤]到 Underscore 的范圍,我們?cè)谶@里僅僅觸及了皮毛。請(qǐng)務(wù)必查看更多圖書(shū)館內(nèi)容,如果您有任何疑問(wèn),請(qǐng)?jiān)谙旅娴脑u(píng)論中告訴我。非常感謝您的閱讀!

以上是擁抱 Underscore.js 的溫暖的詳細(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)

熱門(mén)話題

Laravel 教程
1597
29
PHP教程
1488
72
如何診斷WordPress引起的高CPU使用 如何診斷WordPress引起的高CPU使用 Jul 06, 2025 am 12:08 AM

WordPress導(dǎo)致服務(wù)器CPU使用率飆升的主要原因包括插件問(wèn)題、數(shù)據(jù)庫(kù)查詢(xún)效率低、主題代碼質(zhì)量差或流量激增。 1.首先通過(guò)top、htop或控制面板工具確認(rèn)是否為WordPress引起的高負(fù)載;2.進(jìn)入故障排查模式逐步啟用插件排查性能瓶頸,使用QueryMonitor分析插件執(zhí)行情況並刪除或替換低效插件;3.安裝緩存插件、清理冗餘數(shù)據(jù)、分析慢查詢(xún)?nèi)照I以?xún)?yōu)化數(shù)據(jù)庫(kù);4.檢查主題是否存在過(guò)度加載內(nèi)容、複雜查詢(xún)或缺乏緩存機(jī)制等問(wèn)題,建議用標(biāo)準(zhǔn)主題測(cè)試對(duì)比並優(yōu)化代碼邏輯。按照上述步驟逐一排查可定位並解

如何在WordPress中縮小JavaScript文件 如何在WordPress中縮小JavaScript文件 Jul 07, 2025 am 01:11 AM

MinifyingJavaScript文件可通過(guò)刪除空白、註釋和無(wú)用代碼來(lái)提升WordPress網(wǎng)站加載速度。 1.使用支持合併壓縮的緩存插件如W3TotalCache,在“Minify”選項(xiàng)中啟用並選擇壓縮模式;2.使用專(zhuān)用壓縮插件如FastVelocityMinify,提供更精細(xì)控制;3.手動(dòng)壓縮JS文件並通過(guò)FTP上傳,適用於熟悉開(kāi)發(fā)工具的用戶。注意部分主題或插件腳本可能與壓縮功能衝突,啟用後需徹底測(cè)試網(wǎng)站功能。

如何以編程方式防止評(píng)論垃圾郵件 如何以編程方式防止評(píng)論垃圾郵件 Jul 08, 2025 am 12:04 AM

防止評(píng)論垃圾信息最有效的方式是通過(guò)程序化手段自動(dòng)識(shí)別並攔截。 1.使用驗(yàn)證碼機(jī)制(如GooglereCAPTCHA或hCaptcha)可有效區(qū)分人類(lèi)與機(jī)器人,尤其適合公眾網(wǎng)站;2.設(shè)置隱藏字段(Honeypot技術(shù)),利用機(jī)器人自動(dòng)填寫(xiě)特性識(shí)別垃圾評(píng)論,不影響用戶體驗(yàn);3.檢查評(píng)論內(nèi)容關(guān)鍵詞黑名單,通過(guò)敏感詞匹配過(guò)濾垃圾信息,需注意避免誤判;4.判斷評(píng)論頻率與來(lái)源IP,限制單位時(shí)間內(nèi)的提交次數(shù)並建立黑名單;5.使用第三方反垃圾服務(wù)(如Akismet、Cloudflare)提升識(shí)別準(zhǔn)確性??筛鶕?jù)網(wǎng)站

如何爭(zhēng)取古騰堡大塊的資產(chǎn) 如何爭(zhēng)取古騰堡大塊的資產(chǎn) Jul 09, 2025 am 12:14 AM

在開(kāi)發(fā)Gutenberg塊時(shí),正確enqueue資產(chǎn)的方法包括:1.使用register_block_type指定editor_script、editor_style和style的路徑;2.在functions.php或插件中通過(guò)wp_register_script和wp_register_style註冊(cè)資源,並設(shè)置正確的依賴(lài)和版本;3.配置構(gòu)建工具輸出合適的模塊格式,並確保路徑一致;4.通過(guò)add_theme_support或enqueue_block_assets控制前端樣式的加載邏輯,確保

如何向用戶添加自定義字段 如何向用戶添加自定義字段 Jul 06, 2025 am 12:18 AM

要添加自定義用戶字段需根據(jù)平臺(tái)選擇擴(kuò)展方式並註意數(shù)據(jù)驗(yàn)證與權(quán)限控制。常見(jiàn)做法包括:1.利用數(shù)據(jù)庫(kù)額外表或鍵值對(duì)結(jié)構(gòu)存儲(chǔ)信息;2.在前端加入輸入框並與後端集成;3.對(duì)敏感數(shù)據(jù)進(jìn)行格式校驗(yàn)和訪問(wèn)權(quán)限限制;4.更新接口及模板以支持新字段展示與編輯,同時(shí)兼顧移動(dòng)端適配和用戶體驗(yàn)。

如何添加自定義重寫(xiě)規(guī)則 如何添加自定義重寫(xiě)規(guī)則 Jul 08, 2025 am 12:11 AM

在WordPress中添加自定義重寫(xiě)規(guī)則的關(guān)鍵在於使用add_rewrite_rule函數(shù)並確保規(guī)則正確生效。 1.使用add_rewrite_rule註冊(cè)規(guī)則,格式為add_rewrite_rule($regex,$redirect,$after),其中$regex是正則表達(dá)式匹配URL,$redirect指定實(shí)際查詢(xún),$after控制規(guī)則位置;2.需通過(guò)add_filter添加自定義查詢(xún)變量;3.修改後必須刷新固定鏈接設(shè)置;4.建議將規(guī)則放在'top'以避免衝突;5.可藉助插件查看當(dāng)前規(guī)則便於

如何優(yōu)化WordPress機(jī)器人TXT 如何優(yōu)化WordPress機(jī)器人TXT Jul 13, 2025 am 12:37 AM

robots.txt對(duì)WordPress網(wǎng)站的SEO至關(guān)重要,能引導(dǎo)搜索引擎抓取行為,避免重複內(nèi)容並提升效率。 1.屏蔽如/wp-admin/、/wp-includes/等系統(tǒng)路徑,但避免誤封/uploads/目錄;2.添加Sitemap路徑如Sitemap:https://yourdomain.com/sitemap.xml以幫助搜索引擎快速發(fā)現(xiàn)站點(diǎn)地圖;3.限制/page/和帶參數(shù)的URL以減少爬蟲(chóng)浪費(fèi),但需注意勿封重要?dú)w檔頁(yè);4.避免常見(jiàn)錯(cuò)誤如誤封全站、緩存插件影響更新及忽略移動(dòng)端與子域名配

如何介紹WordPress性能 如何介紹WordPress性能 Jul 07, 2025 am 12:43 AM

1.使用性能分析插件可快速定位問(wèn)題,如QueryMonitor可查看數(shù)據(jù)庫(kù)查詢(xún)次數(shù)與PHP錯(cuò)誤,BlackboxProfiler生成函數(shù)執(zhí)行報(bào)告,NewRelic提供服務(wù)器級(jí)分析;2.分析PHP執(zhí)行性能需檢查耗時(shí)函數(shù)、調(diào)試工具使用及內(nèi)存分配情況,如Xdebug生成火焰圖輔助優(yōu)化;3.監(jiān)控?cái)?shù)據(jù)庫(kù)查詢(xún)效率可通過(guò)慢查詢(xún)?nèi)照I與索引檢查,QueryMonitor能列出所有SQL並按時(shí)間排序;4.結(jié)合GooglePageSpeedInsights、GTmetrix與WebPageTest等外部工具評(píng)估前端加

See all articles