總結 每一位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.