浏览器渲染原理

1、首先渲染引擎下载HTML,解析生成DOM Tree 2、遇到css标签或JS脚本标签就新起线程去下载他们,并继续构建DOM。(其中css是异步下载同步执行)浏览器引擎通过 DOM Tree 和 CSS Rule Tree 构建 Rendering Tree 3、 通过 CSS Rule Tree 匹配 DOM Tree 进行定位坐标和大小,这个过程称为 Flow 或 Layout 。 4、最终通过调用Native GUI 的 API 绘制网页画面的过程称为 Paint 。 当用户在浏览网页时进行交互或通过 js 脚本改变页面结构时,以上的部分操作有可能重复运行,此过程称为 Repaint …

前端职业规划

首先应该是一个优秀的程序员 其次是努力使自己成为某一领域的技术专家 通过技术更好的服务于团队和业务 提高沟通能力,团队协作,发现问题,解决问题,总结问题能力 写写博客,输出就是最好的学习 提升个人前端的工作效率和工作质量 关注前端前言技术和发展方向,通过新技术服务团队和业务 一专多长 想成为优秀的前端工程师,首先在专业技能领域必不可少,其次在团队贡献、业务思索、价值判断上也有要求。这三方面能决定你的专业技能能够为公司产出多大的价值。 程序员最核心的竞争力是学习力和责任。 学习能力的源泉就是好奇心,也就是对新知识的渴求,以及对探索未知的冲动。

前端路由的两种实现

早期的路由都是后端实现的,直接根据 url 来 reload 页面,页面变得越来越复杂服务器端压力变大,随着 ajax 的出现,页面实现非 reload 就能刷新数据,也给前端路由的出现奠定了基础。我们可以通过记录 url 来记录 ajax 的变化,从而实现前端路由。 本文主要讲两种主流方式实现前端路由。 History API 这里不细说每一个 API 的用法,大家可以看 MDN 的文档:https://developer.mozilla.org/.. 重点说其中的两个新增的API?history.pushState?和?history.replaceState 这两个 API 都接收三个参 …

HTML5_ScrollInToView方法

如果滚动页面也是DOM没有解决的一个问题。为了解决这个问题,浏览器实现了一下方法,以方便开发人员如何更好的控制页面的滚动。在各种专有方法中,HTML5选择了scrollIntoView()作为标准方法。 scrollIntoView()可以在所有的HTML元素上调用,通过滚动浏览器窗口或某个容器元素,调用元素就可以出现在视窗中。如果给该方法传入true作为参数,或者不传入任何参数,那么窗口滚动之后会让调动元素顶部和视窗顶部尽可能齐平。如果传入false作为参数,调用元素会尽可能全部出现在视口中(可能的话,调用元素的底部会与视口的顶部齐平)。 不过顶部不一定齐平,例如: //让元素可见 docu …

tagName和nodeName的区别

介绍DOM里常见的三种节点类型(总共有12种,如docment): 元素节点,属性节点以及文本节点,例如<h2 class=”title”>head</h2>,其中h2是元素节点,class是属性节点,head是文本节点,在这里你可以说h2这个元素节点包含一个属性节点和一个文本节点。其实几乎所有HTML的标签都是元素节点,而id, title, class等则是属性节点,而元素所包含的文本内容则是文本节点。 tagName和nodeName的语义是一样的,都是返回所包含标签的名称,例如上面的h2标签,都是返回h2,但是tagName只能在元素标签 …

Three.js 绘制 3D 图形

一、前言 Three.js 是一款 webGL(3D绘图标准,在此不赘述)引擎,可以运行于所有支持 webGL 的浏览器。Three.js 封装了 webGL 底层的 API ,为我们提供了高级的开发接口,可以使用简单的代码去实现 3D 渲染。(官网:https://threejs.org/) 二、为什么要选择Three.js? Three.js作为原生web3D引擎,对插件式 web3D引擎的优势不言而喻:不需要安装插件、在移动端支持好。 Three.js 与其他原生 web3D 引擎对比: Babylon.js:一个强大的 3D 游戏引擎,由 Microsoft 的员工 David Cat …

fis3笔记

fis3 开启相对地址 //全局或本地安装插件 npm install -g fis3-hook-relative //启用插件 fis.hook(‘relative’); //让所有文件,都使用相对路径。 fis.match(‘**’, { relative:?true?})