有时我的应用程序表现得很奇怪。我的一些请求开始需要很长时间,然后可能会失败,没有任何系统。甚至在查看日志之后,我也找不到这样的请求,而且看起来它们甚至没有被服务器处理。
所以我想实现客户端脚本,跟踪长期或失败的请求,然后将此信息发送到服务器。
实现这种功能的最佳方法是什么?
有时我的应用程序表现得很奇怪。我的一些请求开始需要很长时间,然后可能会失败,没有任何系统。甚至在查看日志之后,我也找不到这样的请求,而且看起来它们甚至没有被服务器处理。
所以我想实现客户端脚本,跟踪长期或失败的请求,然后将此信息发送到服务器。
实现这种功能的最佳方法是什么?
(1) 您可以覆盖XMLHttpRequest
以提供所需的功能。
var mylog = [];
XMLHttpRequest = (function(XMLHttpRequest) {
return function() {
XMLHttpRequest.apply(this, arguments);
this.timeout = 30 * 1000; //thirty seconds
this.ontimeout = function() {
mylog.push("Request timed out");
};
};
})(XMLHttpRequest);
setInterval(function() {
//send to server
mylog = [];
}, 60 * 1000);
(2) 您可以创建自己的 XHR 工厂来设置timeout
它们ontimeout
。您更改了所有代码以使用它。
(3) 你没有提到jQuery,所以我不会花太多时间在这上面,但是使用jQuery,你可以使用$.ajaxSetup
设置默认参数。
确实,您应该花时间尝试从服务器端进行跟踪;他们在收集你想要的东西方面更加可靠。