最近参与一个项目的开发,由于项目是基于浏览器的胖客户端(RIA)应用程序,页面中大量调用ifr a me。后期测试发现浏览器内存一直居高不下,而且打开ifr a me页面越多内存占用越大,在IE系列浏览器中尤其明显。所有打开的ifr a me页面即使关闭了,内存使用也没有明显的下降,IE浏览器在内存占用达到400M左右就变得很卡。分析发现是ifr a me没有释放造成的,于是对所有已关闭的ifr a me所占用的内存进行释放,虽然不能完全释放,但是ifr a me内存占用量不会一直增长,整个应用
设置 ifr a me 的 src 为 ‘about:blank’ 之后,不置为“about:blank”,内存不会释放掉。还必须用 ifr a me.[removed](”); 这样才能将内容清空,但是这样处理之后任然会有500-1000K左右的内存残留,这就是ie6的ifr a me bug,动态创建的ifr a me总会耗费掉一些内存。
复制代码代码如下: function clearifr a me(id){ var el = document.getElementById(id),
设置 ifr a me 的 src 为 ‘about:blank’ 之后,不置为“about:blank”,内存不会释放掉。还必须用 ifr a me.[removed](”); 这样才能将内容清空,但是这样处理之后任然会有500-1000K左右的内存残留,这就是ie6的ifr a me bug,动态创建的ifr a me总会耗费掉一些内存。
复制代码代码如下: function clearifr a me(id){ var el = document.getElementById(id),