- 从输入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均使用此方法 })