前端场景题:实现监控请求时常

实现思路:对请求与响应进行拦截,通过在header中使用performance.now()记录的时间来获取精确的请求时常

以vue中封装的axios为例:

import axios from "axios";

const service = axios.create({
  baseURL: "http://localhost:5000",
  timeout: 5000,
});

//请求拦截
service.interceptors.request.use(
  (config) => {
    const requestTime = performance.now();
    config.headers.requestTime = requestTime;
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

//响应拦截
service.interceptors.response.use(
  (response) => {
    //获取相应数据后的操作
    const res = response.data;
    const requestDuration =
      performance.now() - response.config.headers.requestTime;
    res.requestDuration = requestDuration.toFixed(2) + "ms";
    return res;
  },
  (error) => {
    //错误处理
    return Promise.reject(error);
  }
);

export default service;

const Request = (
  method: string,
  url: string,
  data?: Object,
  config?: Object
) => {
  return service({
    method,
    url,
    data,
    ...config,
  }).then((response) => {
    return response;
  });
};
export const getRequest = (url: string) => Request("get", url);

使用:

getRequest("https://ljynet.com:5000/getGongneng")
  .then((response: any) => {
    console.log(response.requestDuration);
    // 处理成功返回的数据
  })
  .catch((error: any) => {
    console.error("请求失败:", error);
    // 处理错误
  });

相关推荐

  1. 前端场景实现监控请求时常

    2024-06-14 06:54:01       6 阅读
  2. 前端怎么实现跨域请求

    2024-06-14 06:54:01       28 阅读
  3. 前端怎么实现跨域请求

    2024-06-14 06:54:01       11 阅读
  4. 前端实现websocket的应用场景以及逻辑实现

    2024-06-14 06:54:01       33 阅读
  5. 前端笔试题(九)——请使用jQuery实现Ajax请求

    2024-06-14 06:54:01       29 阅读
  6. 2023 前端实战面试

    2024-06-14 06:54:01       36 阅读
  7. 前端架构和业务场景面试(本人真实面试

    2024-06-14 06:54:01       32 阅读
  8. 前端 实现时间限制的缓存

    2024-06-14 06:54:01       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-14 06:54:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-14 06:54:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-14 06:54:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-14 06:54:01       20 阅读

热门阅读

  1. 在Elasticsearch中-SpaceJam一个全文搜索的实例

    2024-06-14 06:54:01       6 阅读
  2. Linux常用命令

    2024-06-14 06:54:01       5 阅读
  3. 【Python Cookbook】S02E08 编写多行模式的正则表达式

    2024-06-14 06:54:01       10 阅读
  4. msf原生shellcode迁移进程后如何获取攻击者ip

    2024-06-14 06:54:01       10 阅读