面试视频知识点整理1-12(渲染机制,js运行机制,页面性能,错误监控)
技巧(赞美面试官研究的比较深)
1、渲染机制
什么是DOCTYPE及作用?
DTD(文档类型定义)是一系列的语法规则,用于定义文件类型。浏览器会根据它来判断文档类型,决定使用何种协议来解析以及切换浏览器模式;
DOCTYPE用来声明文档类型和DTD规范用于文件的合法性验证,如果不合法解析就会报错
html5:<!DOCTYPE html> html4.01分严格和宽松模式
浏览器的渲染过程?
1)解析html,解析css
2)将html,css整合在一起
3)生成renderTreee
4)渲染
重排Reflow?
DOM结构中各个元素都有自己的盒子,这些都需要浏览器根据各种样式来计算结果将元素放到它出现的位置,这个过程称之为reflow。
触发Reflow:DOM节点发生变化,css样式修改,窗口发生改变,修改字体等
重绘Repaint?
将DOM的按照计算的属性,特性呈现再页面上(可以将要操作的节点放在一个虚拟节点,一次append避免多次Repaint)
2、js运行机制
如何理解单线程?
在同一时间,只能做一件事
什么是任务队列?
同步任务和异步任务,同步任务会优先执行,异步任务会放到队列里,等同步任务执行完才执行
异步任务:setTimeout、setInterval、DOM事件、promise
什么是Event Loop?
1、运行栈
2、异步队列
3、将运行栈的任务执行完,然后去将队列里的任务放入运行栈中执行,执行完了。如此循环至队列为空
3、页面性能
1、资源压缩合并,减少http请求
2、非核心代码异步加载
1)动态加载脚本
2)async
3)defer
4)按需加载
3、浏览器缓存
缓存的分类:
1)强缓存(直接拿来用)
Expires
Cache-Control
2)协商缓存(不确定可以用,要上服务器询问)
Last-modified If-Modified-Since
Etag If-None-Match
4、使用CDN
5、预解析DNS
<meta http-equiv="x-dns-prefetch-control" content="on">
4、错误监控
前端错误的分类
即时运行错误:代码错误
资源加载错误
错误的捕获方式
即时运行错误
try catch
window.onerror
资源加载错误
object.onerror
performance.getEntries()
Error事件捕获
跨域的js运行错误如何捕获?
1)在script标签增加crossorigin属性
2)设置js响应头Access-Control-Allow-origin:*
上报错误的原理
1)采用Ajax通信的方式上报
2)通过image对象上报
面试视频知识点整理1-12(渲染机制,js运行机制,页面性能,错误监控)的更多相关文章
- 面试 09-02.js运行机制:异步和单线程
09-02.js运行机制:异步和单线程 #前言 面试时,关于同步和异步,可能会问以下问题: 同步和异步的区别是什么?分别举一个同步和异步的例子 一个关于 setTimeout 的笔试题 前端使用异步的 ...
- 从浏览器多进程到JS单线程,JS运行机制的一次系统梳理
前言 见解有限,如有描述不当之处,请帮忙及时指出,如有错误,会及时修正. ----------超长文+多图预警,需要花费不少时间.---------- 如果看完本文后,还对进程线程傻傻分不清,不清楚浏 ...
- 从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理
前言 来源:https://dailc.github.io/2018/01/21/js_singlethread_eventloop.html 见解有限,如有描述不当之处,请帮忙及时指出,如有错误,会 ...
- 如何通过setTimeout理解JS运行机制详解
setTimeout()函数:用来指定某个函数或某段代码在多少毫秒之后执行.它返回一个整数,表示定时器timer的编号,可以用来取消该定时器. 例子 ? 1 2 3 4 5 console.log(1 ...
- Js 运行机制 event loop
Js - 运行机制 (Even Loop) Javascript 的单线程 - 引用思否的说法: JavaScript的一个语言特性(也是这门语言的核心)就是单线程.什么是单线程呢?简单地说就是同一时 ...
- 浅谈java编译机制和运行机制
源文件和字节码的组成方式 源文件: 拓展名后跟java的文件即java的源文件. Java 源码编译由以下三个过程组成: 1.分析和输入到符号表 2.注解处理 3.语义分析和生成class文件 流程图 ...
- js 运行机制
<script> console.log(1) setTimeout(function(){ console.log(3) },0) console.log(2) </script& ...
- Js 运行机制 (重点!!)
一.引子 本文介绍JavaScript运行机制,这一部分比较抽象,我们先从一道面试题入手: 这一题看似很简单,但如果你不了解JavaScript运行机制,很容易就答错了.题目的答案是依次输出1 2 3 ...
- js 运行机制简单了解
一.如何理解 JS 的单线程? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事.那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊. JavaScrip ...
- 【Android 面试基础知识点整理】
针对Android面试中常见的一些知识点整理,Max 仅仅是个搬运工.感谢本文中引用文章的各位作者,给大家分享了这么多优秀文章.对于当中的解析,是原作者个人见解,有错误和不准确的地方,也请大家积极指正 ...
随机推荐
- oracle 2个数组列,剔除数组重复的数据。
一.下面这样不规则的,数据如何剔除掉.循环筛选replace替换掉. 序号 正常时间 剔除时间 1 2022-12-19,2022-12-20,2022-12-21,2022-12-22,202 ...
- u盘重装系统后怎么恢复成普通u盘使用,U盘启动盘还原的方法
1.先将u盘插入到电脑,然后在电脑上按下win+r快捷键打开运行菜单,输入"cmd"回车确定打开命令提示符页面. 2. 然后在命令提示符输入"diskpart&quo ...
- rocketmq-exporter部署(干货)
简单介绍 rocketmq_exporter是prometheus提供的用于监控rocketmq运行状态的exporter 环境 系统 版本 CentOS 7.6.1810 (Core) CPU/内存 ...
- element ui tabs 标签页支持展开收起修改
<template> <div class="com-resource-legend" style=""> <el-tabs ty ...
- MSSQL执行超大.sql脚本
1.打开mssql安装路径:找到Microsoft SQL Server Management Studio的图标,点击右键属性>打开文件位置 2.在安装路径下打开cmd控制台 3.输入命令: ...
- db2存储过程 动态拼接sql 、输出数据集示例
*****部分都是表名.因为隐私关系,替换为*了. 1 CREATE PROCEDURE "BI_DM"."SP_GCYP_REPORT" ( 2 startd ...
- SQL Server FOR XML EXPLICIT 一步步学习
查看网址:https://www.itdaan.com/blog/2015/05/05/510cd42eb587c98bcd25ef0e5b687fd1.html
- notepad++解决粘贴复制代码行数问题
一.打开 Notepad++,按住 Alt,鼠标点击拖出选择框,这个是列选方法.如图: 然后删除即可 二. 1.将带行数的代码粘贴复制到notepad++中: 2.按ctrl+f,选中替换,选中正则表 ...
- Hadoop完全分布式开发配置流程
完全分布式开发 整体流程 1.准备3台纯净虚拟机 2.修改每台ip,主机名,主机映射,关闭防火墙 3.安装jdk和hadoop,配置环境变量 4.集群分发脚本编写 5.集群配置 6.ssh免密登录 7 ...
- python打包生成exe报错
如图所示 如果出现的是这个问题可以可以考虑以下方法 首先卸载原先下载的 Pyinstaller pip uninstall pyinstaller 再执行以下代码,去github上下载 pip ...