Modern tarayıcılarda, Ajax hataları için jQuery olay işleyicileri ekleyerek ve Ajax hataları için jQuery olay işleyicileri ekleyerek, en tepeye çıkan hatalar için window.onerror'ı çengellemenin, istemci kodunuzda atılan tüm Hata nesnelerini yakalayacağı doğrudur. Window.onerror için manuel olarak bir işleyici kuruyorsanız, modern tarayıcılarda bu işlem yapılır window.addEventListener('error', callback)
, IE8 / 9'da ise aramanız gerekir
window.attachEvent('onerror', callback)
.
Daha sonra bu hataların işlendiği ortamı ve bunun nedenini göz önünde bulundurmanız gerektiğini unutmayın. Yığın izleriyle mümkün olduğunca çok hatayı yakalamak bir şeydir, ancak modern F12 geliştirme araçlarının ortaya çıkışı, yerel olarak uygularken ve hata ayıklarken bu kullanım durumunu çözer. Kesme noktaları vb., Özellikle CORS isteklerinden yüklenen üçüncü taraf kitaplıkları tarafından atılan hatalar için işleyicilerde bulunandan daha fazla veri sağlar. Tarayıcıya bu verileri sağlama talimatı vermek için ek adımlar atmanız gerekir.
Temel sorun, bu verileri üretimde sağlamaktır, çünkü kullanıcılarınızın muhtemelen test edebileceğinizden çok daha geniş bir tarayıcı ve sürüm dizisi çalıştırması garanti edilir ve siteniz / uygulamanız, ne kadar QA atarsanız verin beklenmedik şekillerde bozulacaktır. o.
Bunu halletmek için, kodunuzu kullandıklarında kullanıcınızın tarayıcılarına atılan her hatayı toplayan ve bunları, verileri sizin tarafınızdan görülebileceği ve hataları meydana geldikçe düzeltmek için kullanılabileceği bir uç noktaya gönderen bir üretim hatası izleyicisine ihtiyacınız vardır. . Raygun'da (sorumluluk reddi: Raygun'da çalışıyorum) bunun için harika bir deneyim sağlamak için çok çaba sarf ettik, çünkü saf bir uygulamanın gözden kaçırılacağını düşünmemiz gereken pek çok tuzak ve sorun var.
Örneğin, JS varlıklarınızı bir araya getirme ve küçültme ihtimaliniz vardır; bu, küçültülmüş koddan atılan hataların, karıştırılmış değişken adlarına sahip önemsiz yığın izlerine sahip olacağı anlamına gelir. Bunun için, kaynak haritaları oluşturmak için derleme aracınıza ihtiyacınız var (ardışık düzeninin bu bölümü için UglifyJS2'yi öneriyoruz) ve hata izleyicinizin bunları kabul edip işleyerek karıştırılmış yığın izlerini tekrar insan tarafından okunabilir hale getirmesi için. Raygun, tüm bunları kutudan çıkarır ve inşa süreciniz tarafından oluşturulduğunda kaynak haritalarını kabul etmek için bir API uç noktası içerir. Bu, halka açık olmamaları gerektiği için anahtardır, aksi takdirde herhangi biri kodunuzu küçültebilir ve amacını reddedebilir.
Raygun4js istemci kütüphanesi de birlikte geliyor window.onerror
jQuery dışı-box kanca şekilde ekleyebilmek için gereken Bunu ayarlamak için, hem de, hem modern hem de eski tarayıcılar için:
<script type="text/javascript" src="//cdn.raygun.io/raygun4js/raygun.min.js" </script>
<script>
Raygun.init('yourApiKey').attach();
</script>
Ayrıca, hata yükünü gönderilmeden önce değiştirebilme, etiket ve özel veriler, hatayı gören kullanıcıyla ilgili meta veriler ekleme gibi yerleşik bir dizi işlevsellik de vardır. Aynı zamanda, yukarıda belirtilen üçüncü taraf CORS komut dosyalarından iyi yığın izleri elde etmenin acısını da ortadan kaldırır, bu da korkunç 'Komut Dosyası Hatası'nı (hata mesajı ve yığın izi içermeyen) çözer.
Daha önemli bir sorun, web'deki geniş kitle nedeniyle sitenizin her hatanın binlerce kopyasını oluşturmasıdır. Raygun gibi bir hata izleme hizmeti , bunları hata gruplarına ayıracak akıllı özelliklere sahiptir, böylece bir bildirim selinde boğulmazsınız ve her gerçek hatayı düzeltilmeye hazır olarak görmenizi sağlar.