日期:2014-05-16  浏览次数:20528 次

产生XMLHttpRequest,内存释放问题
在一本书在看到一段代码来选择产生XMLHttpRequest对象的方法,testObject这个对象是否应该在函数返回前复制为null,释放它的内存呢?虽然说可能占用内存小,但这里仅从优化角度提问。


var SimpleXhrFactory = (function(){
    var standard = {
        createXhrObject: function(){
            return new XMLHttpRequest();
        }
    };
    var activeXNew = {
        createXhrObject: function(){
            return new ActiveXObject("Msxml2.XMLHTTP");
        }
    };
    var activeXOld = {
        createXhrObject: function(){
            return new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    
    var testObject;
    try {
        testObject = standard.createXhrObject();
        //testObject = null;it is mine?
        return standard;
    } 
    catch (e) {
        try {
            testObject = activeXNew.createXhrObject();
            return activeXNew;
        } 
        catch (e) {
            try {
                testObject = activeXOld.createXhrObject();
                return activeXOld;
            } 
            catch (e) {
                throw new Error("No XHR Object found in this environment");
            }
        }
    }
})();
XMLHttpRequest 函数 性能优化

------解决方案--------------------
var testObject是局部变量,方法调用完就消失了,不用清除
------解决方案--------------------
你可以测试下,在外面是访问不到的