gpt4 book ai didi

Javascript 关闭和内存问题

转载 作者:行者123 更新时间:2023-11-30 06:46:52 24 4
gpt4 key购买 nike

//Following function add new table entry to table
//and return interface which has function which uses closure to access and update the table
var _newRow = (function(){
var _interface = {
updateName: null,
updateProgress: null,
actionLinkButton : null,//<a> tag used for user aciton to perform on UI like delete, hide, show etc.
..
..
..
};
var tr = createTr();
var tdName = createTd();
_inteface.updateName = function(newName){
tdName.innerHTML = newName;
}
..
..
..
..
..
return _interface;
})(tblObject);

//maintaining the array of all the rows as per row number
rowArray[rowNo] = _newRow;
..
..
//using the row array to update the entries
rowArray[rowNo].updateProgress('read');

以上是我用来更新客户端动态添加的行的模式。我所做的是在向表中添加行时创建_interface,返回它并按照行号存储它。

然而为此我使用了闭包意味着许多活着的对象。我想知道这是正确的方法吗?有没有更好的方法呢?我可以使用哪些分析工具来了解这段代码使用了多少内存?我如何确保在不需要闭包时正确清除闭包?

最佳答案

JavaScript 有一个垃圾收集器,它会收集杂散对象并自动为您释放它们。无法控制何时或如何。

可能阻止对象/闭包被垃圾收集的是当您拥有全局可访问的对象引用具有词法作用域的函数时。确保分离所有不使用的值(例如,从 DOM 中删除它们)。如果您确定无法访问这些值,它们最终将被垃圾回收。

要识别内存泄漏,不要过早优化很重要,您可以监控网络浏览器的内存使用情况。如果那里不明显,那么您可能不需要担心。您可能想在您的应用程序中模拟很多操作,以查看应用程序长时间运行后的状态。

但一般来说,不必担心内存使用量。根据我的经验,这很少成为问题。

关于Javascript 关闭和内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5801686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com