最近碰到了几个有意思的问题,想记录一下,目前是个半成品,然后会一直添加,添加到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.防抖和节流的使用场景。 这里我回答的是防抖是提交订单的按钮,然后节流是查询按钮,但是人家说我说的只有一半对,一般不对,节流应该是百度的搜索。但是还是说下几个应用场景
- 滚动事件(scroll)
- 窗口 resize 事件
- 鼠标 / 触摸移动事件(mousemove/touchmove)
- 高频点击 / 按钮提交
- 输入框实时搜索(配合防抖的混合场景)