复盘最近碰到的题

35 阅读1分钟

最近碰到了几个有意思的问题,想记录一下,目前是个半成品,然后会一直添加,添加到10个问题为一个章节。

1.如果我要让用户刚进入页面后调用一个数据字典的接口,并且把这个接口存储到缓存里,并且要每隔30分钟请求一次,我要如何去做呢?

答:用户刚进入页面之后先调用接口,并且调用接口的时候放上当前的时间戳,当用户使用数据的时候,获取到当前的时间戳减去第一次调用接口的时间戳,如果大于等于30分钟的话,那么重新请求。

2.前端版本控制要如何去做?

借助 Webpack/Vite 的 DefinePlugin,将 package.json 中的 version 注入代码,这样构建时自动生成 version.json,包含版本号、构建时间、Git 哈希:

{
  "version": "1.3.0",
  "buildTime": "2024-08-19T08:00:00Z",
  "gitHash": "a1b2c3d"
}

3.防抖和节流的使用场景。 这里我回答的是防抖是提交订单的按钮,然后节流是查询按钮,但是人家说我说的只有一半对,一般不对,节流应该是百度的搜索。但是还是说下几个应用场景

  1. 滚动事件(scroll)
  2. 窗口 resize 事件
  3. 鼠标 / 触摸移动事件(mousemove/touchmove)
  4. 高频点击 / 按钮提交
  5. 输入框实时搜索(配合防抖的混合场景)