Javascript回调异步Ajax YUI 3

Javascript回调异步Ajax YUI 3,javascript,memory-leaks,callback,Javascript,Memory Leaks,Callback,我试图通过使用可重用的方法来进行异步ajax调用,从而减少代码并简化一些事情。实际上,我正在从jQuery切换到YUI 3,并在这个过程中进行清理。这对你们这些javascript家伙来说可能非常容易发现,但我一直在试图找出如何在不泄漏内存的情况下调用回调。如果我看任务管理器中的IE,内存会快速增长(该函数每1.5秒调用一次) 基本上,我有一个普通的web页面,它具有我希望在ajax完成后调用的功能。我正在从那里更新UI,并设置其他变量,这些变量只是页面的一部分。我有一个javascript文件

我试图通过使用可重用的方法来进行异步ajax调用,从而减少代码并简化一些事情。实际上,我正在从jQuery切换到YUI 3,并在这个过程中进行清理。这对你们这些javascript家伙来说可能非常容易发现,但我一直在试图找出如何在不泄漏内存的情况下调用回调。如果我看任务管理器中的IE,内存会快速增长(该函数每1.5秒调用一次)

基本上,我有一个普通的web页面,它具有我希望在ajax完成后调用的功能。我正在从那里更新UI,并设置其他变量,这些变量只是页面的一部分。我有一个javascript文件,我在其中放置了实际进行ajax调用的方法。当我使用传入该方法的回调时,它正在泄漏

javascript文件:

function doAjaxRequest(url, callback) {
    YUI().use('io',
        function (Y) {
            var cb =
            {
                timeout: 5000,
                on: {
                    success: function (x, o) {
                        callback(o.responseText);
                    },
                    failure: function (x, o) {
                        callback("");
                    }
                }
            }

            Y.io(url, cb);
        });
}
网页:

doAjaxRequest(myUrl, showContent); // Called every couple seconds

        function showContent(o) {
            document.getElementById('ajaxcontent').innerHTML = o;
            // Other Stuff Removed    
        }

如果我注释掉回调行,它不会泄漏。我必须以另一种方式进行回调,我只是不知道那是什么。

问题是,每次调用
doAjaxRequest
都会创建一个新的YUI实例。改为按如下方式构造代码:

YUI().use('io', function (Y) {
function doAjaxRequest(url, callback) {
    // ...
}

window.doAjaxRequest = doAjaxRequest;
});

这将只创建一个YUI实例。

哪个版本的IE?Firefox/Chrome/Safari/Opera(阅读:真实浏览器)中也会出现这种情况吗?这是IE8。我没有尝试其他浏览器,只是测试了Chrome,它也有同样的问题,仍然是同样的问题。就像我说的,如果我注释掉callback(o.responseText),它不会泄漏;