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

前端面试准备问题2

1.防抖和节流分别是什么,应用场景

防抖:在事件被触发后,只有在指定的延迟时间内没有再次触发,才执行事件处理函数。

                在我的理解中,简单的说就是在一个指定的时间内,仅触发一次,如果有多次重复触发,就开始重新计时。防抖的使用场景主要是处理用户频繁触发的操作,例如搜索框输入,表单验证等,通过防抖机制,可以减少频繁调用函数的次数,提高性能。

节流:在指定的时间间隔内,只允许事件处理函数执行一次。

                总结:节流,就是在指定的时间内,不论触发多少次,就只执行一次。节流的使用场景主要是控制高频触发的事件,比如页面滚动,按钮点击或者鼠标移动等场景,保证在一定时间内只执行一次事件处理,避免性能开销

2.在过往的项目中都有做过什么样的性能优化,具体怎么实现的呢?

对于这样的回答,其实就是考察我们的实际项目经验,可以从真实场景,具体措施和结果三个方面回答。

像我们平常做大屏开发的项目比较多,就可以这样回答:

在我参与的项目中,占据大屏的项目居多,我的工作能主要就是负责实时数据展示和图表渲染,同时为了保证用户的使用体验,随着数据量和图表的增多,页面渲染卡顿,数据更新延迟,通常我会采取这些优化措施:

首先:我会通过websocket替代传统的轮询方式,实现双向通信,实时推送数据,减少数据请求的频率,提高实时数据的流畅性。

其次:对于在Echarts图表渲染大量数据中,通常我会结合dataZoom实现数据分段加载,默认显示前1000条数据,当用户拖动缩放时,在通过API获取剩余的数据

然后:对于一些数据更新不频繁的图表,采用懒加载和组件按需渲染,利用 Vue 的 keep-alive 特性,对不频繁更新的图表进行缓存,避免重复初始化和 DOM 操作,减少资源开销。

最后,对于静态资源,我们可以通过CDN加速,将静态资源上传到CDN,提高加载速率,缩短用户和资源节点之间的网络延迟。

3.说说你对websocket的了解

WebSocket 是一种双向通信协议,它允许客户端和服务器之间保持一个长期的连接,双方可以随时互相发送消息,而不需要频繁建立连接。相对于传统的 HTTP 协议,WebSocket 在性能上有很大优势,特别是在实时应用场景中,比如在线聊天、实时数据推送等。

自己回答:

在我参与的一个智慧农业灌溉大屏项目中,我们做过一个自动化灌溉的功能,灌溉系统涉及到的设备开关需要实时展示和操作,比如用户通过大屏点击开关控制设备的状态,而状态变化需要实时反馈到前端,这里我们就是用了websocket来实现。

具体的来说,当用户操作灌溉系统的开关时,前端通过websocket向服务器发送开关状态的指令,服务器接受到指令后,会执行设备控制的逻辑,并实时返回操作结果给前端。

比如说用户点击关闭按钮时,系统就能在毫秒级返回设备的当前状态,整个过程是非常流畅的。

 

 

 

http://www.lryc.cn/news/502942.html

相关文章:

  • web前端sse封装
  • 智能家居WTR096-16S录放音芯片方案,实现语音播报提示及录音留言功能
  • 【创建模式-蓝本模式(Prototype Pattern)】
  • Spring Boot应用开发深度解析与实战案例
  • 优化Go语言中的网络连接:设置代理超时参数
  • 《神经网络与深度学习》(邱锡鹏) 内容概要【不含数学推导】
  • 原创 传奇996_55——后端如何点击npc隐藏主界面
  • RabbitMQ中的Work Queues模式
  • GESP202412 四级【Recamán】题解(AC)
  • 蓝桥杯新年题解 | 第15届蓝桥杯迎新篇
  • 3D 生成重建035-DiffRF直接生成nerf
  • @SpringBootTest 报错: UnsatisfiedDependencyException
  • mysql、postgresql、oceanbase调优
  • MySQL 数据库事务实践
  • VScode、Windsurf、Cursor 中 R 语言相关快捷键设置
  • tcpdump编译
  • Linux下禁止root远程登录访问
  • 算法刷题Day16: BM41 输出二叉树的右视图
  • 登录授权的实现:json web token + redis + springboot
  • yolov,coco,voc标记的睡岗检测数据集,可识别在桌子上趴着睡,埋头睡觉,座椅上靠着睡,平躺着睡等多种睡姿的检测,6549张图片
  • 数据库表的CRUD
  • Proxy与Reflect
  • 【安卓开发】【Android Studio】启动时报错“Unable to access Android SDK add-on list”
  • 【C语言篇】C 语言总复习(下):点亮编程思维,穿越代码的浩瀚星河
  • AI技术架构:从基础设施到应用
  • centos7的yum镜像源设置
  • Qt6开发自签名证书的https代理服务器
  • HarmonyOS:多线程并发-Worker
  • 小程序IOS安全区域优化:safe-area-inset-bottom
  • C++ 中多态性在实际项目中的应用场景