扫码关注官方订阅号
后端如何判断前端调用API超时。
光阴似箭催人老,日月如移越少年。
给你一个方案:在前端请求的时候记录请求时间(开始时间),记录接口返回数据接口的时候(结束时间),记录curl状态值。状态值获取方法:$httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);比如,设置10s 为超时。当 结束时间 - 开始时间 》10s 的时候,记录到redis队列。当 状态值 != 200 的请求,记录到redis队列。然后后端消耗队列,比如 写到数据,或者 发短信,发邮件 等等。
有问题,再问我即可。
来后端这拿了东西就给前端丢过去了,丢完了就不管前端了,除非您是websorcket,不然你不知道前端是否超时哒,坐等楼下大佬解答
websorcket
var xhr = new XMLHttpRequest(); xhr.open('GET', '/server', true); xhr.timeout = 2000; // 超时时间,单位是毫秒 xhr.onload = function () { // 请求完成。在此进行处理。 }; xhr.ontimeout = function (e) { // XMLHttpRequest 超时。在此做某事。 }; xhr.send(null);
https://developer.mozilla.org...
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
给你一个方案:
在前端请求的时候记录请求时间(开始时间),记录接口返回数据接口的时候(结束时间),记录curl状态值。
状态值获取方法:$httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
比如,设置10s 为超时。
当 结束时间 - 开始时间 》10s 的时候,记录到redis队列。
当 状态值 != 200 的请求,记录到redis队列。
然后后端消耗队列,比如 写到数据,或者 发短信,发邮件 等等。
有问题,再问我即可。
来后端这拿了东西就给前端丢过去了,丢完了就不管前端了,除非您是
websorcket,不然你不知道前端是否超时哒,坐等楼下大佬解答示例
https://developer.mozilla.org...