From Javascript's kiss

var XHR = function(){
    var xhr = null;
    if (window.XMLHttpRequest) {
        xhr = new XMLHttpRequest();
    }
    else {
        try {
            xhr = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e) {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xhr;
}

var ajaxGet = function(url, handle){
    var xhr = XHR();
    xhr.open("GET", url, true);
    xhr.onreadystatechange = function(){
        if (xhr.readyState === 4 && (xhr.status === 200 || xhr.status === 304)) {
            handle(xhr);
        }
    }
    xhr.send(null);
}

var backToPrevious = {
    step: [], //用于储存每一步的参数
    previous: null,
    run: function(url, handle){
        this.step.push(this.previous); //储存每一步的参数
        this.previous = {
            "url": url,
            "handle": handle
        };
        ajaxGet(url, handle);
    },
    undo: function(){
        var item = this.step.pop();
        if (item) {
            ajaxGet(item.url, item.handle);
        }
    }
}


onload = function(){
    var div = document.getElementById("div");
    div.style.left = "200px";
    //alert(div.style.left);
    document.getElementById("do1").onclick = function(){
        backToPrevious.run("test.txt", handle);
        //alert(Move.step);
    }
    
    document.getElementById("do2").onclick = function(){
        backToPrevious.run("test2.txt", handle);
    }
    
    document.getElementById("do3").onclick = function(){
        backToPrevious.run("test3.txt", handle);
    }
    
    document.getElementById("undo").onclick = function(){
        backToPrevious.undo();
    }
    function handle(xhr){
        div.innerHTML = xhr.responseText;
    }
}
backToPrevious Element.