摘要: 分为深度优先遍历和广度优先遍历,深度优先遍历分前序、中序、后序三种方法,广度优先则一层层的遍历。 前序遍历(根-左-右):A-B-D-F-G-H-I-E-C 访问根节点 访问当前节点的左子树 若当前节点无左子树,则访问当前节点的右子 中序遍历(左-根-右,若右侧有子树,则先访问子树,子树也是左-根- 阅读全文
posted @ 2018-05-26 19:01 我是格鲁特 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 一、dom节点的关系及遍历 element.firstChild(firstElementChild); 如果节点为已知节点的第一个子节点就可以使用这个方法。此方法可以递归进行使用 element.firstChild.firstChild..... 在ie中,ie9以前,如果子节点中含以空格开头, 阅读全文
posted @ 2018-05-26 17:06 我是格鲁特 阅读(271) 评论(0) 推荐(0) 编辑
摘要: http://www.talkingdotnet.com/how-to-enable-gzip-compression-in-asp-net-core/ 阅读全文
posted @ 2018-05-20 12:43 我是格鲁特 阅读(960) 评论(0) 推荐(0) 编辑
摘要: npm常用命令 npm-update命令实在蛋疼,只会根据package.json里包的版本号进行升级,不能自动检查某个包是否有更新,也不能更新整个项目中所有的包,还好有下面这个工具 npm-check-updates 检查项目中可升级的包 ncu 升级所有可升级的包 ncu -a 升级某个包,并更 阅读全文
posted @ 2018-04-30 00:16 我是格鲁特 阅读(122) 评论(0) 推荐(0) 编辑
摘要: IE: trident内核 Firefox:gecko内核 Safari:webkit内核 Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核 Chrome:Blink(基于webkit,Google与Opera Software共同开发) 阅读全文
posted @ 2018-03-19 09:13 我是格鲁特 阅读(134) 评论(0) 推荐(0) 编辑
摘要: https://juejin.im/post/5a9923e9518825558251c96a 阅读全文
posted @ 2018-03-18 22:29 我是格鲁特 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 1.没有async和defer,html解析时遇到script标签,会先去下载js文件,文件加载完成立即执行,执行完了再开始解析后面的html,是一个顺序流的过程 2.async,加载和渲染后续文档元素的过程将和 script.js 的加载是并行执行的,js文件加载完,要执行前会暂停html解析,有 阅读全文
posted @ 2018-03-08 11:15 我是格鲁特 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 一、基于http请求头和响应头的缓存技术 在介绍HTTP缓存之前,作为知识铺垫,先简单介绍一下HTTP报文: 浏览器向服务器请求数据,发送请求(request)报文;服务器向浏览器返回数据,返回响应(response)报文。报文信息主要分为两部分1.包含属性的首部(header) 附加信息(cook 阅读全文
posted @ 2018-03-07 15:28 我是格鲁特 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 1.窗口和浏览器 window.innerWidth、window.innerHeight 浏览器内部可用宽高 window.outerWidth、window.outerHeight 浏览器整体宽高 window.screenTop(Firefox采用screenX) 浏览器左上角距离屏幕顶端的距 阅读全文
posted @ 2018-03-06 11:54 我是格鲁特 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 什么是域名发散? 域名发散就将静态资源分布在不同的子域名下,这是PC时代网页常用的静态资源加载技术 为什么要使用域名发散? 现代浏览器对每个域名的并发请求数大约在6个,IE 稍显傲娇,总体而言并发数不高。通过将静态资源放在不同的子域名下,可以提高浏览器的并发请求能力 什么是域名收敛 域名收敛与域名发 阅读全文
posted @ 2018-03-05 11:28 我是格鲁特 阅读(249) 评论(0) 推荐(0) 编辑