总结 每一位Web开发员可能都整理有一份本身的代码示例列表,当他们在代码中看到如列表中的代码时,他们会意识到泄漏的存在并会使用一些开发技巧来避免这些问题。这样的方法虽然简单便捷,但这也是今天Web页面内存泄漏广泛存在的缘由。考虑咱们所讨论的泄漏情景而不是关注独立的代码示例,你将会使用更加有效的策略来解决泄漏问题。这样的观念将使你在设计阶段就把问题估计到,而且确保你有计划来处理潜在的泄漏问题。使用编写加固代码(译者注:就是异常处理或清理对象等的代码)的习惯而且采起清理全部本身占用内存的方法。虽然对这个问题来讲可能太夸张了,你也可能几乎从没有见到编写脚本却须要本身清理本身占用的内存的状况;使这个问题变得愈来愈显著的是,脚本变量和expando属性间存在的潜在泄漏可能。 若是对模式和设计感兴趣,我强烈推荐Scott的这篇blog,由于其中演示了一个通用的移除基于闭包泄漏的示例代码。固然这须要咱们使用更多的代码,可是这个实践是有效的,而且改进的场景很是容易在代码中定位并进行调试。相似的注入设计也能够用在基于expando属性引发的循环引用中,不过须要注意所注册的方法自身不要让泄漏(特别使用闭包的地方)跑掉。About the author Justin Rogers recently joined the Internet Explorer team as an Object Model developer working on extensibility and previously worked on such notable projects as the .NET QuickStart Tutorials, .NET Terrarium, and SQL Reporting Services Management Studio in SQL Server 2005.