interview
frontend-classic
JS脚本延迟加载的方式有哪些?

前端经典面试题合集, JS 脚本延迟加载的方式有哪些?

前端经典面试题合集, JS 脚本延迟加载的方式有哪些?

QA

Step 1

Q:: JS 脚本延迟加载的方式有哪些?

A:: 1. 使用 defer 属性:<script src='example.js' defer></script>。defer 属性会让脚本在 HTML 解析完成后再执行。2. 使用 async 属性:<script src='example.js' async></script>。async 属性会让脚本异步加载并立即执行,不会阻塞 HTML 解析。3. 动态创建脚本标签:通过 JavaScript 动态创建脚本标签并插入到 DOM 中,例如:let script = document.createElement('script'); script.src = 'example.js'; document.body.appendChild(script); 4. 使用 setTimeout:通过 setTimeout 方法延迟执行脚本代码,例如:setTimeout(function() { // 你的脚本代码 }, 0);

Step 2

Q:: defer 和 async 的区别是什么?

A:: 1. defer 属性会让脚本在 HTML 完全解析完毕后再执行,并且按顺序执行多个脚本。2. async 属性会让脚本异步加载并立即执行,不保证执行顺序。defer 适用于多个脚本之间有依赖关系的情况,而 async 适用于独立的脚本。

Step 3

Q:: 如何在 HTML 页面中动态加载 JavaScript 文件?

A:: 可以通过 JavaScript 动态创建 script 标签并将其插入到 DOM 中,例如:let script = document.createElement('script'); script.src = 'example.js'; document.body.appendChild(script);。这种方式常用于需要在特定事件触发时加载额外脚本的场景。

用途

面试中考察 JS 脚本延迟加载的知识是为了了解候选人对前端性能优化的掌握情况。在实际生产环境中,延迟加载可以提高页面加载速度,减少阻塞,提升用户体验。例如,在单页面应用中,只有在用户需要特定功能时才加载相关脚本,可以显著提升初始加载性能。\n

相关问题

🦆
什么是代码拆分Code Splitting?

代码拆分是将应用程序的代码拆分成多个文件,以便按需加载。这可以减少初始加载时间,并提高应用性能。常用的工具包括 Webpack 和 Rollup。

🦆
如何进行 JavaScript 性能优化?

1. 使用延迟加载或异步加载脚本。2. 减少重绘和重排。3. 使用 CSS 动画代替 JavaScript 动画。4. 优化循环和 DOM 操作。5. 使用缓存和本地存储。

🦆
解释懒加载lazy loading是什么?

懒加载是一种延迟加载资源的技术,只有当资源即将出现在视口中时才加载它。这在图片、视频等资源较多的页面中尤为常见,可以显著减少初始加载时间并节省带宽。