js 学习之路代码记录
js 加载时间线 1.创建Document对象,开始解析web页面。解析HTML元素和他们的文本内容后添加Element对象和Text节点到文档中。这个阶段document.readyState="loading" 2.遇到link外部css,创建线程加载,并继续解析文档 3.遇到script外部js,并且没有设置async、defer,浏览器加载,并阻塞,等待js加载完成并执行该脚本,然后继续解析文档。 4.遇到script外部js,并且设置有async、defer,浏览器创建线程加载,并继续解析文档。对于async属性的脚本,脚本加载完成后立即执行。(异步禁止使用document.write()) 5.遇到img等,先正常解析dom结构,然后浏览器异步加载src,并继续解析文档。 6.当文档解析完成。document.readyState="interactive" 7.文档解析完成后,所有设置有defer的脚本会按照顺序执行。(注意与async的不同,但同样禁止使用document.write()) 8.document对象出发DOMContentLoaded事件,这也标志着程序执行从同步脚本执行阶段,转化为事件驱动阶段。 9.当所有async的脚本加载完成并执行后、img等加载完成后,document.readyState="complete",window对象出发load事件。 10.从此,以异步相应方式处理用户输入、网络事件等。
1 2 3 4 5Title 6 7 8 9 28 29 30
1 2 3 4 5练习 6 7 8 9 10 30 31 32
1 2 3 4 5工具jstype 6 7 8 33 34 35
1 2 3 4 5练习 6 7 8 9 10 39 40 41
1 2 3 4 5Title 6 7 8
- 9
- a 10
- a 11
- a 12
- a 13
- a 14
1 2 3 4 5拖拽 6 7 8 9 10 11 12 13 33 34
1 document.onkeydown = function(e) { 2 console.log(e) //打印出按键信息 3 // 左37 上38 右39 下40 4 var speed = 5; 5 switch(e.which){ 6 case 38: 7 div.style.top = parseInt(div.style.top) - speed + "px"; 8 break; 9 case 40:10 div.style.top = parseInt(div.style.top) + speed + "px";11 break;12 case 37:13 div.style.left = parseInt(div.style.left) - speed + "px";14 break;15 case 39:16 div.style.left = parseInt(div.style.left) + speed + "px";17 break;18 }19 20 }
1 2 3 4 5画笔工具 6 7 26 27 28 47 48 49 50
1 2 3 4 5Title 6 7 8
- 9
- 1 10
- 2 11
- 3 12
- 4 13
- 5 14
- 6 15
- 7 16
- 8 17
- 9 18
- 10 19
1 2 3 4 5Title 6 48 49 50 51 61 62 63 105 106 107
1 2 3 4 5Title 6 7 8 9 15 16
1 2 3 4 5Title 6 7 8 9 10
Title
1