Clarification of a some code
        Posted  
        
            by Legend
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Legend
        
        
        
        Published on 2010-05-20T18:20:35Z
        Indexed on 
            2010/05/20
            18:40 UTC
        
        
        Read the original article
        Hit count: 190
        
JavaScript
|beginner
I have come across a website that appears to use Ajax but does not include any js file except one file called ajax.js which has the following:
function run(c, f, b, a, d) {
    var e = null;
    if (b && f) {
        document.getElementById(b).innerHTML = f
    }
    if (window.XMLHttpRequest) {
        e = new XMLHttpRequest()
    } else {
        if (window.ActiveXObject) {
            e = new ActiveXObject(Microsoft.XMLHTTP)
        }
    }
    e.onreadystatechange = function () {
        if (e.readyState == 4) {
            if (e.status == 200 || e.statusText == "OK") {
                if (b) {
                    document.getElementById(b).innerHTML = e.responseText
                }
                if (a) {
                    setTimeout(a, 0)
                }
            } else {
                console.log("AJAX Error:  " + e.status + " | " + e.statusText);
                if (b && d != 1) {
                    document.getElementById(b).innerHTML = "AJAX Error.  Please try refreshing."
                }
            }
        }
    };
    e.open("GET", c, true);
    e.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    e.send(null)
}
Like you might have guessed, the way it issues queries inside the page with queries like this:
run('page.php',loadingText,'ajax-test', 'LoadSamples()');
I must admit that this is the first time I've seen a page from which I could not figure how things are being done. I have a few questions:
- Is this Server-Side Ajax or something similar? If not, can someone clarify what exactly is this?
- Why does one use this? Is it for hiding the design details? (which are otherwise revealed in plain text by javascript)
- How difficult would it be to convert my existing application into this design pattern? (maybe a subjective question but any short suggestion will do)
Any suggestions?
© Stack Overflow or respective owner