惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
Microsoft Security Blog
Microsoft Security Blog
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
博客园_首页
T
Tailwind CSS Blog
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
P
Proofpoint News Feed
博客园 - 司徒正美
有赞技术团队
有赞技术团队
Engineering at Meta
Engineering at Meta
Last Week in AI
Last Week in AI
MongoDB | Blog
MongoDB | Blog

博客园 - Kevin Zou

vs2008 ctrl+D 查找出错 No files were found to look in. Error while trying to retrieve text for error ORA-03113 的一种解决方式 IE不能直接顯示PDF的原因分析和解決方法 [2012-01-06] 流程系统设计--消息和通知 企业应用整合(1)--一个账号 2010年终随笔--漫谈技术 Schtasks命令理解排程的應用 用Adobe ImageReady制作简单GIF动画 Console输出UTF-8 权限设计的三层境界续 闲话权限设计三层境界 - Kevin Zou - 博客园 一个时代的终结 Jquery乱码的一次解决过程 asp.net真的是并行处理request的吗? 十年磨一剑—序 十年磨一剑--缓存模块设计 系统设计其实很有趣--从业务逻辑谈起 系统架构随笔--我看三层架构的数据访问层"怪胎"
JQuery1.4+ Ajax IE8 内存泄漏
Kevin Zou · 2010-10-15 · via 博客园 - Kevin Zou

将JQuery1.2.6升级到JQuery1.4,有几天下班没有关闭ajax轮询网页,第二天早上来,内存耗尽

发现此内存泄漏在IE6上不存在(IE7未测试),IE8上存在

并且JQuery1.3.2版本不存在,JQuery1.4+版本存在

通过对比,最终找到这两个版本的其中一个差别

JQuery1.4+在ajax方法增加了一段代码,用于在abort时调用onreadystatechange方法

try {
    var oldAbort = xhr.abort;
    xhr.abort = function() {
        if ( xhr ) {
            oldAbort.call( xhr );
        }

        onreadystatechange();
    };
} catch(e) { }

经查,正是此段赋值产生了错误

onreadystatechange的readyState为4,即成功时,将xhr.abort销毁

内存泄漏解决

另:如果直接xhr.abort=null,不知道为什么在IE6下会报错

只好try…catch一下,反正IE6不修正错误与不会有问题

此项问题在IE8中有问题的原因不明

可能是xhr.abort与oldAbort产生了一个闭包?

但为什么IE6不泄漏?

blog备查 2010.10.15