技巧(赞美面试官研究的比较深)

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. nginx 服务器重启命令,关闭
  2. js根据不同浏览器(分辨率)调用不同css
  3. 30分钟LINQ教程(转)
  4. java多线程学习-同步之线程通信
  5. jsf taglib定义函数
  6. 编写优质无错C程序秘诀!《经验谈》
  7. (原+转)ubuntu中删除文件夹
  8. 理解 Objective-C 的 ARC
  9. Quartz定时调度在Web中的应用
  10. springboot+springcloud集成jar
  11. 数据预处理:独热编码(One-Hot Encoding)和 LabelEncoder标签编码
  12. C#-1-2-C#基础
  13. P4097 [HEOI2013]Segment(李超树)
  14. 初识node.js(通过npm下载项目依赖的包的过程)
  15. CentOS7+ anaconda3 + Python-3.6 + tensorflow-cpu-1.5安装和配置
  16. Redis学习笔记--Redis配置文件Sentinel.conf参数配置详解
  17. 单机安装hive和presto
  18. OpenJudge1001Exponentiation
  19. UE自动将关键字首字母大写怎么办
  20. js原型和原型链[转]

热门文章

  1. HTML、CSS笔记(一)
  2. 32位机转化11位手机号以及BLE与USB的切换
  3. jQuery-强大的jQuery选择器 (详解)
  4. Angular JS入门 (一)事件监听(二)多控制器思想与模块化编程(三)路由router
  5. 关于 MySQL 的 General Log 功能
  6. Linux下设置目录或文件可读写,但不可以删除权限
  7. 23_webpack_TreeShaking
  8. 浅析sleep()方法与wait()方法
  9. beego入门
  10. 基于Nginx上的docker负载均衡