У нас были некоторые сообщения о проблемах с нашим оформлением заказа, когда клиенты получают js-исключения (мы предполагаем), поэтому они не могут оформить заказ.
Независимо от того, сколько тестовых стендов мы используем, нам не удалось воссоздать проблемы, носмысл упражнения.
Я настроил простую функцию перехвата ошибок, которая работает на основе:
window.onerror = function(message, url, line, chr) {
new Request({
url: "/errorTrap.php",
data: {
m: message,
u: url,
l: line,
c: chr
},
method: "get",
onComplete: function() {
// perhaps save the rendered html source via a second POST request?
alert("done");
}
}).send();
return true;
};
Конечно, за одну неделю я получил 8 писем с сообщениями об исключениях.
К сожалению, страница оформления заказа очень динамичная.Он содержит НЕКОТОРЫЙ встроенный javascript, многие из которых являются внешними файлами и классами .js, а некоторые оцениваются js через ответы ajax.Длина страницы различается в зависимости от товаров в корзине, параметров доставки, информации в адресной книге и т. Д.
Вот почему исключение «Ожидаемый объект» в строке 253 очень мало значит, поскольку оно не помогает мне понять, какая функция вызвала исключение, или не предоставляет контекст блока скрипта / исходного кода, который идет с ним..
Я думал о выполнении второго XHR-запроса, который может отбрасывать innerHTML document.body в обработчик ajax и, таким образом, предоставлять относительную нумерацию строк и контент, который мог вызвать проблему.
Это единственное улучшение в отслеживании, которое я могу сделать?Есть ли какие-нибудь решения для этого "там"?
Вот jsfiddle, который демонстрирует обработку исключений http://www.jsfiddle.net/dimitar/8hqrY/