$ .empty()足够大的ajaxy应用程序吗?

一直在使用应用程序,因为它有点太大我想到了改善内存管理的方法,因为应用程序主要在Javascipt上运行。 因此,每次单击导航项时,我都会将jquery称为空,然后通过ajax显示html。 例如:

//$.ajaxSetup(); called before this //$this is the attached element $.ajax({success:function(data){ $this.empty().html(data.output).fadeIn(400); //more javascript stuff like loading tinymce or jquery ui }}); 

这足以防止内存泄漏吗? 我不完全确定空的是什么,但我假设它删除了该div中的所有DOM元素以及任何其他对象和事件? 顺便说一句。 您可以在http://webproposalgenerator.com/和http://webproposalgenerator.com/demo找到该应用。

任何提高性能/安全性的提示或任何反馈都将非常感激。

$.fn.empty应该足够了,它会删除与元素关联的所有数据和事件,然后删除元素。 它还在所有基于jquery-ui widget.js的小部件上调用.widget("destroy") ,这些小部件是在这些元素上定义的。

同样重要的是要注意jquery的$.fn.html方法在附加html之前调用给定元素上的$.fn.empty() ,因此,如果你使用$.fn.html ,则不必调用$.fn.empty

实际上我的猜测就是这样。 html意味着。 无论如何也是empty的,我也不确定这是真的。 对于perforamnce部分:根据jqfundamentals优秀书籍,当元素在DOM中的.detach()添加内容是一种推荐的最佳实践。 试图锁定代码以获取建议,但没有找到它。 不错的网站顺便说一句