一般来讲,server端的脚本错误可以通过日志来方便的监控,而web页面上的错误经常是通过用户反馈才知道的,甚至会因为环境问题无法重现而难以解决,下面介绍一种常见的web页面错误的收集、监控方法。
1. 对JS错误的监控,示例脚本:
1 2 3 4 5 6 7 8 9 10 11 12 |
(function(){ window.onerror = function(msg,url,line){ //https不上报 if(/^https/.test(window.location)){ return; } var t = document.createElement('img'); var e_info=encodeURIComponent(msg+'|_|'+url+'|_|'+line+'|_|'+window.navigator.userAgent); t.src = 'http://badjs.qq.com/cgi-bin/js_report?bid=104&mid=195279&msg='+e_info+'&v='+Math.random(); t=null; } })(); |
或许你已经看到了,这哪里是“示例”,这分明就是从线上环境中抄来的;恩,不错,但是适合不适合自己,还需斟酌,这里只介绍一种思想; 举一反三一下,或许在你的强大的try…catch.. 之下,window.onerror基本没机会触发了,那么也可以在自己的catch中添加类似的逻辑,将意外的错误上传到服务器上,然后对这种错误信息做监控
2. 当然,不仅仅针对JS,比如flash等,也可以使用类似的手段
3. 我想,这应该是一个基础的功能,应该有一个基础的类库来支持,比如,badjs.qq.com 似乎是专门来做这个事情的,应该有专门的人来负责“上报错误脚本”的开发和上报错误的监控