jsé»å¡æµè§å¨ui渲æ
jså è½½ä¸æ§è¡é»å¡æµè§å¨ui渲æ
åè¨
æä»¬é½ç¥éï¼javascript èæ¬åºè¯¥æ¾ç½®å¨ html ææ¡£çåºé¨ï¼å ¶å®è¿åªæ¯ä¸ªæ¯è¾ä¿é©çåæ³ï¼è¦æ³javascript èæ¬ä¸ä¼é»å¡æµè§å¨ ui çæ¸²æï¼éè¦ç¥éä»¥ä¸ javascript èæ¬å è½½ä¸æ§è¡å¯¹ ui 渲æçå½±åã
å ä¸ç»è®º
ä¸é¢ç»è®ºé对å¤é¾èæ¬ï¼å¨æ¤ä¹ååºè¯¥æç½ä¸¤ä¸ªæ¦å¿µï¼å è½½ å æ§è¡ï¼å 载就æ¯ä¸è½½å°æ¬å°ï¼æ§è¡å°±æ¯è¿è¡èæ¬ã
- è¥èæ¬æ ç¾ä¸å¸¦ defer æè async 屿§ï¼åèæ¬å±äºåæ¥å è½½ï¼æ¤æ¶èæ¬å è½½ä¼é»å¡æµè§å¨è§£æ html ææ¡£ã
- è¥èæ¬æ ç¾å¸¦ defer æè async ï¼åèæ¬å±äºå¼æ¥å è½½ï¼æ¤æ¶èæ¬å è½½ä¸ä¼é»æ¢æµè§å¨è§£æ html ææ¡£ã
- èæ¬æ§è¡é½ä¼é»å¡æµè§å¨ ui 渲æï¼domæ æå»ºï¼cssæ æå»ºï¼æ¸²ææ æå»ºï¼éæï¼éç»ï¼ã
- 卿µè§å¨ä¸ javascipt å ui 渲æå ¬ç¨ä¸ä¸ªçº¿ç¨ï¼ä½æ¯ä¸è½½çæ¶åæµè§å¨ä¼æä¸ä¸ªçº¿ç¨æ± ç»´æ¤ä¸äº ioæä½ï¼ç½ç»IOï¼ç£çIOï¼ï¼æä»¥ä¸è½½çæ¶åéè¿è®¾ç½®å¯ä»¥ä¸é»å¡ ui 渲æã
卿¤è¯´ä¸ä¸ï¼ defer å async çç¸åç¹å¨äº 齿¯å¼æ¥å è½½èæ¬ï¼åºå«å¨äº async å è½½å®ä¼ç«å³æ§è¡ï¼è defer æ¯å¨ dom æ è§£æï¼ä» ä» æ¯domç»æï¼ä¸ç®¡æ ·å¼è¡¨ï¼å¾çè¿äºï¼ä¹åæ§è¡ã
æµè¯
é对ä¸é¢çç»è®ºï¼æä»¬æ¨ä¸ªæµè¯ã
1. è¥èæ¬æ ç¾ä¸å¸¦ defer æè async 屿§ï¼åèæ¬å±äºåæ¥å è½½ï¼æ¤æ¶èæ¬å è½½ä¼é»å¡æµè§å¨è§£æ html ææ¡£ã
çä¸é¢ä»£ç html:
<!-- demo.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="http://localhost/study/add.php" ></script>
<style>
.box {
width: 400px;
height: 400px;
background: yellow;
}
</style>
</head>
<body>
<div class="box">1ddd2223fff3f1</div>
</body>
</html>
add.php
<?php
sleep(2);
å°php æ¾å°ç½ç«æ ¹ç®å½ä¸ï¼æå¼ demo.html å³å¯æµè¯ï¼å¨æ¤æä»¬çå° add.php è¿åçèæ¬å¤§å°å¾å°ï¼ä½æ¯æä»¬éè¿ sleep 模æå è½½æ ¢çæ åµï¼ä¹å°±æ¯å»¶é¿å è½½æ¶é´ï¼æä»¬æå¼æµè§å¨å¯ä»¥çå°ï¼ç»è¿ä¸æ®µæ¶é´å 页é¢ä¸ææ¸²æåº box å ç´ ã
2. è¥èæ¬æ ç¾å¸¦ defer æè async ï¼åèæ¬å±äºå¼æ¥å è½½ï¼æ¤æ¶èæ¬å è½½ä¸ä¼é»æ¢æµè§å¨è§£æ html ææ¡£
çä¸é¢ä»£ç ï¼
<!-- demo.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="http://localhost/study/add.php" defer ></script>
<style>
.box {
width: 400px;
height: 400px;
background: yellow;
}
</style>
</head>
<body>
<div class="box">1ddd2223fff3f1</div>
</body>
</html>
add.php
<?php
sleep(2);
æä»¬ç» script æ ç¾å ä¸ defer æè async ï¼æå¼æµè§å¨ççï¼å¯ä»¥çå°ï¼box å ç´ ç¬é´æ¾ç¤ºå¨é¡µé¢ä¸ã
3. èæ¬æ§è¡é½ä¼é»å¡æµè§å¨ ui 渲æï¼domæ æå»ºï¼cssæ æå»ºï¼æ¸²ææ æå»ºï¼éæï¼éç»ï¼ã
çä¸é¢ä»£ç ï¼html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="demo1.js"></script>
<style>
.box {
width: 400px;
height: 400px;
background: yellow;
}
</style>
</head>
<body>
<div class="box">1ddd2223fff3f1</div>
</body>
</html>
demo1.js
let count = 0;
for (let i = 0; i < 1000000000; i ++) {
count ++;
}
æå¼æµè§å¨æä»¬åç°ï¼æµè§å¨ä¼è¿ä¸æ®µæ¶é´æä¼æ¾ç¤º box å ç´ ï¼å¨è¿éæä»¬éè¿å¤§é计ç®ï¼å ç¨äºçº¿ç¨ï¼å 为æµè§å¨ä¸ ui渲æå javascript å ¬ç¨ä¸ä¸ªçº¿ç¨ï¼æä»¥ä¼é»å¡ã
æå
ç®ä¸ä¸å¼ å¾ï¼ççï¼-.-