- 從輸入url到獲得html的詳細過程
- window.load和DOMContentLoaded的區別
<script src="jquery.js"></script>
<script>
時,會執行並阻塞渲染<p><img src="XXX" /></p>
img DOM元素會順序生成,但圖片src異步加載靜態資源的壓縮合並(打包合併+代碼壓縮)javascript
<script src="a.js"></script> <script src="b.js"></script> <script src="c.js"></script> // 打包合併後 <script src="abc.js"></script>
靜態資源緩存php
<script src=「abc_1.js」></script>
<script src="abc_2.js"></script>
使用CDNhtml
使用SSR後端渲染前端
CSS放前面,js放後面java
懶加載jquery
<img id="img1" src="preview.png" data-realsrc="abc.png" /> <script> var img1 = document.getElementById('img1'); img1.src = img1.getAttribute('data-realsrc'); </script>
減小DOM操做web
// 未緩存DOM查詢 var i; for (i = 0; i < document.getElementsByTagName('p').length; i++) { // TODO } // 緩存了DOM查詢 var pList = document.getElementsByTagName('p'); var i; for (i = 0; i < pList.length; i++) { // TODO }
var listNode = document.getElementById('list'); // 建立1個片斷 var frag = document.createDocumentFragment(); var x, li; for (x = 0; x < 10; x++) { li = document.createElement('li'); li.innerHTML = "List item" + x; // 插入片斷 frag.appendChild(li); } // 最後將片斷直接插入正文 listNode.appendChild(frag);
事件節流面試
var textaarea = document.getElementById('text'); var timeoutId; textaarea.addEventListener('keyup', function () { if (timeoutId) { clearTimeout(timeoutId); } timeoutId = setTimeout(function () { // 觸發change事件 console.log("用戶中止打字,開始觸發事件") }, 100); })
儘早執行操做後端
window.addEventListener('load', function () { // 頁面所有加載完以後纔會執行,包括圖片、視頻等 }) document.addEventListener('DOMContentLoaded', function () { // DOM渲染完便可執行,此時圖片、視頻還可能沒有加載完 // jQuery、zepto均使用此方法 })
<script>
預防瀏覽器
<
爲<
、>
爲>
(配合)<img src=xxx>
預防
可能對React不是很瞭解,最近正在學React,大約1個月後就能作出1個React的網站
- 從輸入url到獲得html的詳細過程
- window.load和DOMContentLoaded的區別
window.addEventListener('load', function () { // 頁面所有加載完以後纔會執行,包括圖片、視頻等 }) document.addEventListener('DOMContentLoaded', function () { // DOM渲染完便可執行,此時圖片、視頻還可能沒有加載完 // jQuery、zepto均使用此方法 })