当前位置: 首页 > news >正文

前端面试准备-5

1.Node.js中的process.nectTick()有什么作用

将一个回调函数插入到当前执行栈的尾部,在下一次事件轮询之前调用这个回调函数

2.什么是Node.js中的事件发射器,作用是什么,如何使用

提供一种机制,可以创建、触发和监听自定义事件。他的作用是允许我们对异步事件进行订阅并在事件发生时执行回调函数

使用步骤:

①:创建一个事件发射器对象

②:使用on()方法为特定事件注册监听器

③:使用emit()方法触发事件

const EventEmitter = require('events');
const eventEmitter = new EventEmitter();// 注册一个事件和对应的监听器
eventEmitter.on('greet', (name) => {console.log(`Hello, ${name}!`);
});// 触发事件
eventEmitter.emit('greet', 'World');

3.Node.js中的事件循环

事件循环(Event Loop) 是其异步编程模型的核心机制,是一个永远允许的循环,它允许 Node.js 以非阻塞的方式执行代码,尽管 JavaScript 本身是单线程的。

阶段说明
timers处理 setTimeoutsetInterval
I/O callbacks执行延迟到下轮循环的 I/O 回调
idle, prepare内部使用
poll轮询新的 I/O 事件
check处理 setImmediate 回调
close callbackssocket.on('close')

 

4.什么是非阻塞I/O,Node.js如何实现非阻塞I/O

非阻塞 I/O(Non-blocking I/O) 是指发起 I/O 操作(如读取文件、访问数据库、网络请求)时,程序不需要等待该操作完成,而是可以继续执行后续代码。一旦 I/O 完成,通过回调函数、事件或 Promise 通知程序结果。

5.如何解决前端SPA应用首屏加载速度慢的问题

①: 代码分割

  • 动态导入:利用 ES6 的 import() 动态加载模块,按需加载代码。
  • 路由懒加载:结合路由框架(如 React Router、Vue Router),实现路由组件的懒加载。
  • webpack 配置:利用 webpack 的 splitChunks 插件来分割代码,确保只有当用户访问特定页面时才加载相应的代码块。

②: 开启 gzip 压缩。

  • 在服务器端配置 gzip 压缩,减少传输的数据量。

③:优化资源加载

  • 预加载与预渲染:使用 <link rel="preload"> 和 <link rel="prefetch"> 提前加载关键资源。
  • 使用 Service Worker:通过 Service Worker 缓存静态资源,减少网络请求。
  • 延迟加载:对于非关键资源(如图片和视频),使用懒加载技术延迟加载。

④:图片优化

⑤:Server-Side Rendering (SSR)

  • 对于首屏加载特别敏感的应用,可以考虑采用服务端渲染技术,预先生成 HTML 内容发送给客户端,减少首屏空白时间。

 

 

 

 

 

 

 

http://www.dtcms.com/a/225359.html

相关文章:

  • 字节面试手撕题:版本号排序
  • MyBatis03——SpringBoot整合MyBatis
  • OpenLayers 地图标注之图文标注
  • C#数字图像处理(二)
  • Ⅰ.计算机二级选择题(C语言概述)
  • 【第16届蓝桥杯 | 软件赛】CB组省赛第二场
  • [蓝桥杯]外卖店优先级
  • 串口通信技术及USART应用研究
  • 鸿蒙仓颉语言开发教程:自定义弹窗
  • 开始通信之旅-----话题通信
  • python 将音乐和人声分离
  • 如何编写GitLab-CI配置文件
  • 链表题解——合并两个有序链表【LeetCode】
  • 【数据结构】顺序表和链表详解(上)
  • 剪枝中的 `break` 与 `return` 区别详解
  • JS中的函数防抖和节流:提升性能的关键技术
  • barker-OFDM模糊函数原理及仿真
  • DelphiXe12创建DataSnap REST Application
  • 阴盘奇门 api数据接口
  • 中国高分辨率高质量地面NO2数据集(2008-2023)
  • ​​技术深度解析:《鸿蒙5.0+:无感续航的智能魔法》​
  • SSRF 接收器
  • 抖音客户端训练营--day2
  • 第13讲、Odoo 18 配置文件(odoo.conf)详细解读
  • [Android] APK安装器 V20160330-6.0
  • 重学计算机网络之以太网
  • 精英-探索双群协同优化(Elite-Exploration Dual Swarm Cooperative Optimization, EEDSCO)
  • 基于 Zynq 平台的 EtherCAT 主站的软硬件协同设计
  • wsl安装linux
  • 【火山引擎 大模型批量处理数据教程-详细】