手动添加Ajax接口
当运行环境中没有XHR 对象或fetch 接口时(例如使用React Native
开发,运行在移动端的应用), 可以使用手动调用接口的方式, 监控请求。
添加Ajax接口
window['TINGYUN'].addAjax(ajaxData)
ajaxData 对象类型, 包含下列属性:
属性 | 说明 | 默认值 |
---|---|---|
method | 请求方法 | GET |
url | 请求url | 空 |
status | 状态码 | 0 |
start | 请求开始时间戳 | 0 |
du | 请求耗时 | end-start |
end | 请求结束时间戳 | 0 |
send | 发送字节数 | 0 |
rec | 服务端返回字节数 | 0 |
cb | 回调函数执行时间 | 0 |
接口调用参考方式:
const ajaxData = { method: 'GET', url: 'https://jsonplaceholder.typicode.com/todos/1', start: +new Date }; axios.get('https://jsonplaceholder.typicode.com/todos/1') .then(function (response) { // handle success ajaxData.rec = (JSON.stringify(response.data) || '').length; ajaxData.end = +new Date; ajaxData.du = ajaxData.end - ajaxData.start; ajaxData.status = response.status; }) .catch(function (error) { // handle error }) .finally(function () { // always executed // 调用添加ajax接口 window['TINGYUN'].addAjax(ajaxData); });
需要更加准确记录start 和end,可以在 transformRequest
和 transformResponse
中设置
示例:
const ajaxData = { method: 'GET', url: 'https://jsonplaceholder.typicode.com/todos/1' }; const axiosInstance = axios.create({ transformRequest: [function (data, headers) { ajaxData.start = +new Date; return data; }], transformResponse: [function (data) { ajaxData.end = +new Date; return data; }], }); axiosInstance.get('https://jsonplaceholder.typicode.com/todos/1') .then(function (response) { // handle success ajaxData.rec = (JSON.stringify(response.data) || '').length; ajaxData.du = ajaxData.end - ajaxData.start; ajaxData.status = response.status; }) .catch(function (error) { // handle error }) .finally(function () { // always executed window['TINGYUN'].addAjax(ajaxData); });
禁用默认Ajax监控
当使用手动设置ajax时,可以禁用默认的ajax监控功能。在设置中关闭Ajax自动监控
开关,保存后重新嵌码