Poiché i sistemi in questi giorni stanno diventando sempre più Javascript (jQuery, AJAX, ecc.), Abbiamo cercato di ottenere sempre più errori di registrazione che si verificano per una di queste cose .Registrazione globale errori jQuery (errori evento e DOM)
La mia preoccupazione è che all'interno di jQuery per sé, quando normale manipolazione del DOM/eventi jQuery vengono creati o eseguiti, window.onerror
non è in grado di catturare questi, e questo potrebbe contribuire a rendere i bug di debug in produzione più veloce, facendoli registrati sul server
In questo articolo a partire dal 2008 (.onerror & jQuery bind try/catch{}), aggiungono un try/catch {} alla jQuery.bind() event
e anche l'evento document.ready. Ora che tutto passa attraverso l'evento .on()
questo articolo è un po 'datato, ma sento che la logica potrebbe ancora funzionare ...
Qualcuno ha provato a implementare una tale sovrascrittura jQuery (sistema try/catch) nei propri progetti?
In pratica, voglio continuare a utilizzare jQuery dal CDN e solo all'interno di uno dei nostri file JS: estendere/ignorare gli eventi .on()/$(document).ready()/etc
con queste modifiche.
jQuery.fn.extend({ // <-- can this be extended/overwritten ?
on: function(etc etc) {
// same code just add the additional
try {
// try to execute the original .on()
}
catch (ex) {
// log any errors/info (where/why/etc)
}
}
});
// or even some sort of try/catch for $(document).ready()?
Gli altri formati di registrazione tipico errore: (ovviamente il browser logging/OS/QueryString/etc troppo)
window.onerror = function (msg, url, line) {
// Log General Javascript Errors
// this won't log jQuery internal errors
};
$.ajaxSetup({ // Log AJAX Errors
error: function (jqXHR, ajaxSettings, thrownError) { }
});
Non facciamo errori dove lavoro? – adeneo
:) Beh, certo, chi commette errori in questi giorni. Il problema è che abbiamo a che fare con un sacco di computer/browser legacy che casualmente incontrano gli errori più strani con alcune delle nostre pagine. Sto solo cercando di ottenere una soluzione completa per registrarli, forse in quel modo potremmo risolverli. qualche idea? –