vue页面渲染异常(白屏或数据不显示)
这两天遇到巨坑的BUG,不过总算找到问题所在。特此记录,以免再坑。
遇到的问题
较大概率(50%)出现渲染异常
调试过程
edura.js完全不加载,按钮也不显示
onerror监听不到任何错误
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28/**
* @param {String} message 错误信息
* @param {String} source 出错文件
* @param {Number} lineno 行号
* @param {Number} colno 列号
* @param {Object} error Error对象(对象)
*/
window.onerror = function(message, source, lineno, colno, error) {
try {
console.log('捕获到异常:',{message, source, lineno, colno, error});
var params = {
message: message || '',
source: source || '',
lineno: lineno || '',
colno: colno || '',
error: error || ''
}
var str = JSON.stringify(params)
var xhr = new XMLHttpRequest();
var url = '//***/logstores/web-error/track_ua.gif?APIVersion=0.6.0&' + str
xhr.open('GET', url, false);
xhr.setRequestHeader('Content-Type', 'application/json;charset=utf-8')
xhr.send(null);
} catch(err) {
console.log(err)
}
}强制更新视图无效
Vue.$set(this, model, ‘’);
this.$nextTick();
this.$forceUpdate();不监听错误直接接口上报任意数据,神奇的事情发生了,正常渲染
1
2
3
4var str = JSON.stringify({t: +new Date()})
var xhr = new XMLHttpRequest();
var url = '//***/logstores/web-error/track_ua.gif?APIVersion=0.6.0&' + str
xhr.open('GET', url, false);使用抓包工具,正常渲染
和伙伴讨论BUG出现的原因,初步怀疑宽带运营商劫持
由于我们的页面都是https协议,所以刚开始并未考虑被劫持。
断开Wifi,打开4G,正常渲染 0 0.。
总结
运营商劫持导致页面渲染异常
vue页面渲染异常(白屏或数据不显示)
http://example.com/20210204-vue页面渲染异常-白屏或数据不显示/