Skip to main content
 Web开发网 » 站长学院 » 帝国cms教程

2020Web前端最新高频面试题及答案全解析

2021年10月11日8100百度已收录

2020Web前端最新高频面试题及答案全解析  jQuery面试 第1张

Web前端面试题及答案

问题一:简单说一下图片的懒加载和预加载解析:懒加载也叫延迟加载,指的是在长网页中延迟加载图片的时机,当用户需要访问时,再去加载这样可以提高网站的首屏加载速度,提升用户的体验,并且可以减少服务器的压力。

它适用于图片很多,页面很长的电商网站的场景。懒加载的实现原理是,将页面上的图片的 src 属性设置为空字符串,将图片的真实路径保存在一个自定义属性中,当页面滚动的时候,进行判断,如果图片进入页面可视区域内,则从自定义属性中取出真实路径赋值给图片的 src 属性,以此来实现图片的延迟加载。

预加载指的是将所需的资源提前请求加载到本地,这样后面在需要用到时就直接从缓存取资源。通过预加载能够减少用户的等待时间,提高用户的体验。我了解的预加载的最常用的方式是使用 js 中的 image对象,通过为 image 对象来设置 scr 属性,来实现图片的预加载。

这两种方式都是提高网页性能的方式,两者主要区别是一个是提前加载,一个是迟缓甚至不加载。懒加载对服务器前端有一定的缓 解压力作用,预加载则会增加服务器前端压力。

问题二:为什么虚拟DOM会提高性能?解析:虚拟 dom 相当于在 js 和真实 dom 中间加了一个缓存,利用 dom diff 算法避免了没有必要的dom 操作,从而提高性能。用 JavaScript 对象结构表示 DOM 树的结构;然后用这个树构建一个真正的DOM 树,插到文档当中当状态变更的时候,重新构造一棵新的对象树。然后用新的树和旧的树进行比较,记录两棵树差异把 2 所记录的差异应用到步骤 1 所构建的真正的 DOM 马上,视图就更新了。

问题三:Virtual DOM的优势在哪里?解析:「Virtual Dom 的优势」其实这道题目面试官更想听到的答案不是上来就说「直接操作/频繁操作 DOM的性能差」,如果 DOM 操作的性能如此不堪,那么 jQuery 也不至于活到今天。所以面试官更想听到VDOM 想解决的问题以及为什么频繁的DOM 操作快性能差。

首先我们需要知道:DOM 引擎、JS 引擎 相互独立,但又工作在同一线程(主线程) JS 代码调用 DOMAPI 必须 挂起 JS 引擎、转换传入参数数据、激活 DOM 引擎,DOM 重绘后再转换可能有的返回值,最后激活 JS 引擎并继续执行若有频繁的 DOM API 调用,且浏览器厂商不做“批量处理”优化, 引擎间切换的单位代价将迅速积累若其中有强制重绘的 DOM API 调用,重新计算布局、重新绘制图像会引起更大的性能消耗。其次是 VDOM 和真实 DOM 的区别和优化:

虚拟 DOM 不会立马进行排版与重绘操作

虚拟 DOM 进行频繁修改,然后一次性比较并修改真实 DOM 中需要改的部分,最后在真实 DOM中进行排版与重绘,减少过多DOM节点排版与重绘损耗。

虚拟 DOM 有效降低大面积真实 DOM 的重绘与排版,因为最终与真实 DOM 比较差异,可以只渲染局部

以上就是酷仔今天整理提供的Web前端开发面试题,希望为Web前端同学提供了有用的面试素材,以后酷仔每日均会提供Python及Web相关的习题。

评论列表暂无评论
发表评论
微信