我有一个单页面应用程序,可根据用户输入创建和删除多个iframe。每个iframe可以包含一个jqgrid,一个用于输入提交的表单,带有jquery.validate插件等...
主页面可以访问所有iframe以检索当前操作状态和一些数据来重建主菜单。
可以安全地删除iframe,或者我需要.empty()
身体才能删除它们吗?
编辑:
当我说“检索当前操作状态和一些数据”时,我实际上使用类似的东西访问iframe属性
jqueryFrameObject[0].contextWindow.myCoolProperty
但永远不会在主页面中缓存对象
答案 0 :(得分:1)
否:jQuery负责删除可能导致内存泄漏的元素:
除了元素本身之外,还删除了与元素关联的所有绑定事件和jQuery数据。
如果你没有保留其他指针(包括例如基于闭包的隐藏指针),那么你将是安全的。如果您不想保留已删除元素的隐藏链接,请注意不要使用原生addEventListener
。