进入页面进行getWebsocket,然后获取状态,但是现在页面进入后必须F5
刷新一次,就算切换页面也没作用,打了debugger,刷新之后就执行,不
刷新就跳过。求个路大佬精英给支个办法吧,找出问题也好,跪谢!
mounted() {
var self = this;
this.tableHeight = document.documentElement.clientHeight - 146 - 60;
this.treeHeight = document.documentElement.clientHeight - 146 - 120;
this.selectDevicePage();
//进入页面后走到这里就直接跳过不执行了,F5刷新后他就会执行
this.socket = getWebsocket({
onlineInfo: function(data) {
debugger;
console.log("Site.onlineInfo")
console.log(data)
for (var i = 0; i < self.dataTable.list.length; i++) {
console.log(self.dataTable.list[i].deviceInfo.id);
console.log(self.dataTable.list[i].deviceInfo.id == data._devid);
if (self.dataTable.list[i].deviceInfo.id == data._devid) {
self.dataTable.list[i].status = data._value;
break;
}
}
console.log(self.dataTable.list);
}
}).reStart();
},
export default function getWebSocket(obj) {
if (zenithSocket.socket) {
if (obj && obj.gpsInfo) {
zenithSocket.gpsInfo = obj.gpsInfo;
}
if (obj && obj.onlineInfo) {
zenithSocket.onlineInfo = obj.onlineInfo;
}
if (obj && obj.sosInfo) {
zenithSocket.sosInfo = obj.sosInfo;
}
return zenithSocket;
} else {
zenithSocket.gpsInfo = obj.gpsInfo? obj.gpsInfo : function(data){};
zenithSocket.onlineInfo = obj.onlineInfo ? obj.onlineInfo : function(data){};
zenithSocket.sosInfo = obj.sosInfo ? obj.sosInfo : function(data){};
if (obj.url) {
zenithSocket.url = obj.url;
return createWebSocket(obj.url);
} else {
return null;
}
}
}
页面缓存可能会导致mounted回调不执行,放到显示回调里面