前端每日一题:2022-01-14

111 阅读1分钟

1.说一下对tree-shaking的了解,CommonJS和ESM都可以用tree-shaking吗?

摇晃我们的js文件将没用的js代码摇落下来起到优化性能的作用。在 webpack 项目中,有一个入口文件,相当于一棵树的主干,入口文件有很多依赖的模块,相当于树枝。实际情况中,虽然依赖了某个模块,但其实只使用其中的某些功能。通过 tree-shaking,将没有使用的模块摇掉,这样来达到删除无用代码的目的。

 ES6 模块,简称 ESM Tree Shaking只支持ES6模块的使用,不支持require这种动态引入模块的方式。es6的import引入是静态引入commonjs的require引入是动态引入。

2.如果在本地资源需要加载一个10m+的图片,他又是整个网页的背景图,你如何优化他不影响网页的渲染速度?

  1. 可以先设置一个小体积的缩略图,同时加载该大图,下载完成再进行替换。
  2. 背景图占地很大 如果从模糊到清晰体验会很差 可以先渲染一个和背景图相同的纯色div 等真实图片new Image(src)在内存中渲染完了再替换

参考资料:

juejin.cn/post/684490…

blog.csdn.net/qq_39207948…