加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

一文汇报你怎样优雅处理赏罚前端非常?

发布时间:2019-03-16 02:17:23 所属栏目:移动互联 来源:佚名
导读:前端一向是间隔用户最近的一层,跟着产物的日益完美,我们会越发注重用户体验,而前端非常却如鲠在喉,甚是烦人。 一、为什么要处理赏罚非常? 非常是不行控的,会影响最终的泛起功效,可是我们有充实的来由去做这样的工作。 1.加强用户体验; 2.长途定位题目

1.操作 window 工具的 load 和 beforeunload 变乱实现了网页瓦解的监控。
不错的文章,保举阅读:Logging Information on Browser Crashes。

  1. window.addEventListener('load', function () { 
  2. sessionStorage.setItem('good_exit', 'pending'); 
  3. setInterval(function () { 
  4. sessionStorage.setItem('time_before_crash', new Date().toString()); 
  5. }, 1000); 
  6. }); 
  7.   
  8. window.addEventListener('beforeunload', function () { 
  9. sessionStorage.setItem('good_exit', 'true'); 
  10. }); 
  11.   
  12. if(sessionStorage.getItem('good_exit') && 
  13. sessionStorage.getItem('good_exit') !== 'true') { 
  14. /* 
  15. insert crash logging code here 
  16. */ 
  17. alert('Hey, welcome back from your crash, looks like you crashed on: ' + sessionStorage.getItem('time_before_crash')); 

2.基于以下缘故起因,我们可以行使 Service Worker 来实现网页瓦解的监控:

  • Service Worker 有本身独立的事变线程,与网页区分隔,网页瓦解了,Service Worker 一样平常环境下不会瓦解;
  • Service Worker 生命周期一样平常要比网页还要长,可以用来监控网页的状态;
  • 网页可以通过 navigator.serviceWorker.controller.postMessage API 向掌管本身的 SW 发送动静。

十二、错误上报

1.通过 Ajax 发送数据
由于 Ajax 哀求自己也有也许会产生非常,并且有也许会激发跨域题目,一样平常环境下更保举行使动态建设 img 标签的情势举办上报。

2.动态建设 img 标签的情势

  1. function report(error) { 
  2. let reportUrl = 'http://jartto.wang/report'; 
  3. new Image().src = `${reportUrl}?logs=${error}`; 

网络非常信息量太多,怎么办?现实中,我们不得不思量这样一种环境:假如你的网站会见量很大,那么一个肯定的错误发送的信息就有许多条,这时辰,我们必要配置收罗率,从而减缓处事器的压力:

  1. Reporter.send = function(data) { 
  2. // 只收罗 30% 
  3. if(Math.random() < 0.3) { 
  4. send(data) // 上报错误信息 

收罗率应该通过现实环境来设定,随机数,可能某些用户特性都是不错的选择。

十三、总结

回到我们开头提出的谁人题目,怎样优雅的处理赏罚非常呢?

1.可疑地区增进 Try-Catch
2.全局监控 JS 非常 window.onerror
3.全局监控静态资源非常 window.addEventListener
4.捕捉没有 Catch 的 Promise 非常:unhandledrejection
5.VUE errorHandler 和 React componentDidCatch
6.监控网页瓦解:window 工具的 load 和 beforeunload
7.跨域 crossOrigin 办理

着实很简朴,正如上文所说:回收组合方案,分范例的去捕捉非常,这样根基 80%-90% 的题目都化于无形。

【编辑保举】

  1. 观测发明开拓者最厌恶 PHP,最爱 Python
  2. 谷歌和OpenAI开拓新器材,能更好地研究呆板视觉算法
  3. 苹果宣布iOS 12.2体系第五个开拓者测试版
  4. 保举这几款开拓流程加强器材让您事半功倍
  5. 开拓者创立了社区继承维护 Atom IDE
【责任编辑:张燕妮 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读