素材巴巴 > 程序开发 >

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

程序开发 2023-09-15 12:20:56

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, 其实也是个不错的选择,对于内存泄露更好控制和排查。


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。