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

推荐订阅源

GbyAI
GbyAI
The GitHub Blog
The GitHub Blog
小众软件
小众软件
美团技术团队
博客园 - 司徒正美
G
Google Developers Blog
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
大猫的无限游戏
大猫的无限游戏
罗磊的独立博客
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
D
Docker
J
Java Code Geeks
Last Week in AI
Last Week in AI
V
Visual Studio Blog
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
V
V2EX
C
Check Point Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MyScale Blog
MyScale 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