亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

渲染機(jī)制/頁(yè)面性能/錯(cuò)誤監(jiān)控

geekidentity / 1824人閱讀

摘要:所以當(dāng)執(zhí)行完后再執(zhí)行秒后輸出最后的打印順序是什么這道題需要了解運(yùn)行機(jī)制是單線程所謂單線程就是同一時(shí)間只能做一件事,任務(wù)隊(duì)列同步任務(wù)和異步任務(wù)是異步任務(wù),而是同步任務(wù)。

渲染機(jī)制

什么是doctype及作用
必須按規(guī)范來(lái)說(shuō)

瀏覽器渲染過(guò)程
dom + cssom -> reder tree -> layout

重排reflow

定義:DOM結(jié)構(gòu)中的各個(gè)元素都有自己的盒子(模型),這些都需要瀏覽器根據(jù)各種樣式來(lái)計(jì)算并根據(jù)計(jì)算結(jié)果將元素放到它該出現(xiàn)的位置,這個(gè)位置稱之為reflow。
觸發(fā):
當(dāng)你增加、刪除、修改DOM結(jié)點(diǎn)時(shí),會(huì)導(dǎo)致reflow或repaint.
當(dāng)你移動(dòng)DOM的位置,或搞個(gè)動(dòng)畫的時(shí)候
修改CSS樣式的時(shí)候
當(dāng)調(diào)整窗口大小,或者滾動(dòng)的時(shí)候有可能會(huì)觸發(fā)。

重繪repaint

定義:
當(dāng)各種盒子的位置、大小以及其他屬性,例如顏色、字體大小都確定下來(lái)后,瀏覽器于是把這些元素都按照各自的特性繪制一遍,于是頁(yè)面的內(nèi)容出現(xiàn)了。只要頁(yè)面顯示的發(fā)生了變化都是repaint。
觸發(fā)repaint:
DOM改動(dòng)
CSS改動(dòng)
避免發(fā)生repaint:
把所有的DOM都添加到document fragment里面。
布局layout

*js運(yùn)行機(jī)制

......有機(jī)會(huì)還需要繼續(xù)了解
題目一:

console.log(1);
setTimeout(function(){
   console.log(2);
},0);
console.log(3);
//1,3,2
//setTimeout是異步任務(wù),所以不會(huì)和console.log同步執(zhí)行。所以當(dāng)執(zhí)行完console.log(2)后再執(zhí)行setTimeout,0秒后輸出3.
//最后的打印順序是什么?這道題需要了解js運(yùn)行機(jī)制

js是單線程:所謂單線程就是同一時(shí)間只能做一件事,

任務(wù)隊(duì)列:

同步任務(wù)和異步任務(wù):
setTimeout、 setInterver是異步任務(wù),而console.log是同步任務(wù)。

題目二:

console.log("A");
while(true){
}
console.log("B");
//輸出A
//因?yàn)閣hile會(huì)不斷循環(huán)導(dǎo)致console.log(B)無(wú)法執(zhí)行。

題目三:

console.log("A");
setTimeout(function(){
   console.log(B);
},0);
while(1){
}
//1是true,0是false.

題目四:

for(var i=0;i<4;i++){
setTimeout(function(){
   console.log(i);
},1000);
}
//4,4,4,4
//異步隊(duì)列執(zhí)行時(shí)間
//異步任務(wù)的放入時(shí)間和執(zhí)行時(shí)間
//和上面幾題是兩個(gè)概念

如何理解js單線程
在一個(gè)時(shí)間內(nèi)只能干一件事

什么是任務(wù)隊(duì)列
任務(wù)隊(duì)列有同步任務(wù)和異步任務(wù).

什么是Event Loop(事件循環(huán))

什么時(shí)候會(huì)開啟異步任務(wù):
setTimeout和setInterval
DOM事件:需要用到addEventlistener,當(dāng)觸發(fā)某個(gè)事件,放入異步任務(wù)隊(duì)列中
ES6中的promise

理解哪些語(yǔ)句加入到異步隊(duì)列

*理解語(yǔ)句放入異步隊(duì)列的時(shí)機(jī)

頁(yè)面性能

提升頁(yè)面性能的方法有哪些

資源壓縮合并,減少HTTP請(qǐng)求.(把資源文件變小)

非核心代碼異步加載->異步加載的方式->異步加載的區(qū)別

*利用瀏覽器緩存->緩存的分類->緩存原理

使用CDN(屬于網(wǎng)絡(luò)優(yōu)化)

預(yù)解析DNS



注:當(dāng)一次打開時(shí),瀏覽器緩存起不到任何作用,但是使用CDN可以起到作用。

2)異步加載

異步加載的方式:

動(dòng)態(tài)腳本加載(動(dòng)態(tài)創(chuàng)建結(jié)點(diǎn))

defer

async

異步加載的區(qū)別:

defer在HTML解析之后才會(huì)執(zhí)行,如果是多個(gè),按照加載順序依次執(zhí)行。

async是在加載完之后立即執(zhí)行,如果是多個(gè),執(zhí)行順序和加載順序無(wú)關(guān)。

3)瀏覽器緩存

瀏覽器緩存的分類
強(qiáng)緩存:

協(xié)商緩存:

錯(cuò)誤監(jiān)控

前端錯(cuò)誤的分類:

即時(shí)運(yùn)行錯(cuò)誤:代碼錯(cuò)誤

資源加載錯(cuò)誤

每種錯(cuò)誤的捕獲方式
即時(shí)錯(cuò)誤的捕獲方式:

try...catch

window.onerror

資源加載錯(cuò)誤:

object.onerror

performance.getEntries()

Error事件捕獲

延伸:跨域的js運(yùn)行錯(cuò)誤可以捕獲嗎,錯(cuò)誤提示什么,應(yīng)該怎么處理?

在script標(biāo)簽添加crossorigin屬性

設(shè)置js資源響應(yīng)頭Access-Control-Allow-Origin:*

上報(bào)錯(cuò)誤的基本原理

采用Ajax通信的方式上報(bào)

利用Image對(duì)象上報(bào)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/102232.html

相關(guān)文章

  • 渲染機(jī)制

    摘要:渲染機(jī)制瀏覽器渲染機(jī)制什么是及作用告訴瀏覽器文件是什么文檔類型,瀏覽器根據(jù)它來(lái)判斷用什么引擎來(lái)解析渲染文件。觸發(fā)改動(dòng)改動(dòng)例當(dāng)添加時(shí),最好一次添加,避免多次。 渲染機(jī)制 瀏覽器 1. 渲染機(jī)制 什么是 DOCTYPE 及作用 DTD 告訴瀏覽器文件是什么文檔類型,瀏覽器根據(jù)它來(lái)判斷用什么引擎來(lái)解析渲染文件。DOCTYPE 用來(lái)聲明文檔類型和 DTD 規(guī)范。 瀏覽器是怎么渲染過(guò)程show...

    Big_fat_cat 評(píng)論0 收藏0
  • 馬蜂窩 iOS App 啟動(dòng)治理:回歸用戶體驗(yàn)

    摘要:馬蜂窩旅游歷經(jīng)幾十個(gè)版本的開發(fā)迭代,在啟動(dòng)流程上積累了一定的技術(shù)債務(wù)。我們定義啟動(dòng)廣告曝光率啟動(dòng)廣告曝光啟動(dòng)廣告加載。 增長(zhǎng)、活躍、留存是移動(dòng) App 的常見核心指標(biāo),直接反映一款 App 甚至一個(gè)互聯(lián)網(wǎng)公司運(yùn)行的健康程度和發(fā)展動(dòng)能。啟動(dòng)流程的體驗(yàn)決定了用戶的第一印象,在一定程度上影響了用戶活躍度和留存率。因此,確保啟動(dòng)流程的良好體驗(yàn)至關(guān)重要。 「馬蜂窩旅游」App 是馬蜂窩為用戶提供...

    Jinkey 評(píng)論0 收藏0
  • GMTC 2019 參會(huì)回顧

    摘要:回顧上一次參加還是年。年的還是真正的,年的會(huì)議早已經(jīng)把英文全稱去掉,改稱全球大前端技術(shù)大會(huì)。同時(shí)與產(chǎn)品協(xié)作從產(chǎn)品設(shè)計(jì)方面突出關(guān)注點(diǎn),做產(chǎn)品設(shè)計(jì)方面的優(yōu)化,如站新版改造減少頁(yè)面元素,將播放器窗口直接顯示在第一屏。 回顧 上一次參加 GMTC 還是 2017 年。那時(shí)的我還是剛剛參加工作并在試用期辭職的菜鳥。 2017 年的 GMTC 還是真正的 Global Mobile Tech Co...

    Zack 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<