2024秋招前端场景面试题库

146 阅读2分钟

弹幕

juejin.cn/post/684490…

接口请求串行执行

要点:

  • 使用async await来实现
  • 遍历请求不能使用forEach,不然会有问题
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>接口串行请求</title>
    </head>
    <body>
        <script>
            let requestArr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
            // 模拟接口请求
            async function fetchDataApi(params) {
                let res = await new Promise((resolve) => {
                    setTimeout(() => {
                        resolve(requestArr[params + 1])
                    }, 1000)
                })
                return res
            }
            async function serialRequest() {
                console.log('串行请求开始')
                // 使用forEach遍历会有问题,因为forEach不接受异步请求,所以需要使用for循环
                // requestArr.forEach(async (item) => {
                //     await fetchDataApi(item)
                // })
                // 初始请求参数
                let params = requestArr[0]
                for (let i = 0; i < requestArr.length; i++) {
                    // 获取请求结果
                    let res = await fetchDataApi(params)
                    console.log('res---', res)
                    // 将请求结果作为下一次请求的参数
                    params = res
                }
            }
            serialRequest()
        </script>
    </body>
</html>

当QFS达到峰值时该如何处理

当QFS(每秒查询率)达到峰值时,前端的处理通常集中再优化用户体验和减轻后端服务器的压力。以下是几种常见的处理办法:

1.前端缓存

  • 利用浏览器缓存(localStorage和sessionStorage),减少不必要的HTTP请求

2.异步请求与队列管理

  • 使用异步请求避免阻塞UI线程
  • 实现请求队列机制,当请求频率过高时,将请求排队而不是立即发送,避免短时间内大量请求冲击服务器

3.限流与重试机制

  • 在前端实现限流逻辑,控制单位时间内发送的请求次数,防止过度请求

4.用户界面反馈

  • 提供加载指示器,告知用户操作正在进行中

5.请求优化

  • 减少HTTP请求大小,例如通过压缩资源和使用更小的图片格式
  • 使用CDN来缓存静态资源,减少对主服务器的直接请求

6.按需加载

  • 实施懒加载技术,只在需要时加载数据或资源,减少不必要的加载

7.前端预处理

  • 在发送到服务器之前,前端可以做一些数据预处理,减少服务器的工作负载

8.使用webScoket或其他长连接技术

  • 长连接可以减少建立新连接的开销,前端可以做一些数据预处理,减少服务器的工作负载。

9.多终端适配

  • 根据设备类型调整请求策略,例如移动设备可能有更加严格的网络和性能限制

大文件切片上传

juejin.cn/post/732388…

虚拟列表

常规方案:juejin.cn/post/684490…