gpt4 book ai didi

javascript - 向服务器发送 javascript 错误

转载 作者:行者123 更新时间:2023-11-30 08:26:16 25 4
gpt4 key购买 nike

我有一个脚本可以捕获错误并将它们发送到我的服务器。但我担心如果我有很多用户,并且每个用户都会遇到一些错误,这可能会导致我的服务器崩溃。

这是我的代码:

window.onerror = function(msg, url, num) {
try {
var clientSideErrorInfo = {
message: msg,
url: url,
num: num
};

var xhr = new XMLHttpRequest();
xhr.open("POST", 'http://domain/api/v1/browser/', true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(JSON.stringify(clientSideErrorInfo));

console.log(clientSideErrorInfo)
} catch (e) {
console.log(e);
// Don't allow for infinitely recursively unhandled errors
return true;
}
};

有没有办法发送一组日志而不是一个一个发送?

谢谢

最佳答案

您可以将所有错误收集到一个全局变量中,然后使用一个时间间隔发送它们,而不是在收到错误时立即发送。通过这种方式,您可以限制同时发送的错误数量,还可以增加间隔。

 var errorSend = {};
errorSend.listErrors = [];
errorSend.maxErrors = 50;
errorSend.interval = 100;

window.onerror = function(msg, url, num) {

var clientSideErrorInfo = {
message: msg,
url: url,
num: num
};

listErrors.push(clientSideErrorInfo);
console.log(clientSideErrorInfo)

};

function sendErrors() {
if (errorSend.listErrors>errorSend.maxErrors) {
console.log("Too many errors to send");
return;
}
var errors = {list: errorSend.listErrors};
var xhr = new XMLHttpRequest();
xhr.open("POST", 'http://domain/api/v1/browser/', true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(JSON.stringify(errors));


}
setInterval(sendErrors,errorSend.interval);

关于javascript - 向服务器发送 javascript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45236637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com