IE在spa应用下内存泄露的处理

1.单页面应用,无论是vue,或者Angular都会存在内存泄露的问题,IE在这方面做得比较差。
这里写图片描述
Win10 版本的 IE11 和 Edge 两款浏览器,不会有内存泄露问题,对于老款的,或者其它环境的IE浏览器,官方的回复是除非安全方面的,否则不会打补丁。
这里写图片描述
2.解决方案,目前看来在不更改js框架的情况下,可以采用取巧的方式,在用户刷新或者用户点返回时,关闭当前的tab页,新开一个tab页,达到内存不飙升的效果。
具体代码如下:
处理用户按F5刷新,在页面加载时就注册事件。此代码放在index.html或者其它全局可自动执行的位置
document.onkeydown = function(e){
if(e.keyCode == 116){
var isIE = false || !!document.documentMode;
if(isIE){
var win = window.open(location.href, ‘_blank’);
win.focus();
window.open(”, ‘_self’, ”);
window.close();
}else{
window.location.reload();
}
}
}
处理用户返回时的刷新问题,重写main.vue中的goback()方法:
goback() {
var isIE = false || !!document.documentMode;
if(isIE){
var win = window.open(location.href, ‘_blank’);
win.focus();
window.open(”, ‘_self’, ”);
window.close();
}else{
window.location.reload();
}},

3.页面复杂度不高的情况下,可以直接使用jquery, 其实也是个不错的选择,对于内存泄露更好控制和排查。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值