2014-01-12 70 views
0

可能是最簡單的方法來查看此代碼中的註釋。據我所知這是所有AJAX代碼的管家,但我不明白它的一些部分!有關AJAX管家代碼的幾個基本問​​題

var xmlHttp = createXmlHttpRequestObject(); 

function createXmlHttpRequestObject() { 
    var xmlHttp; 
//Why are we calling/redefining the xmlHttp variable? 
// Why define it as createXmlHttpRequestObject() in the first place? 

    if(window.XMLHttpRequest) { 
     xmlHttp = new XMLHttpRequest(); //What exactly is an XMLHttpRequest? 
    }else{ 
     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    return xmlHttp; 
} 

可能是個愚蠢的問題:AJAX需要一個xml對象嗎?我知道它的首字母縮寫詞的一部分,但我並不認爲服務器響應必須採用XML格式。

我很抱歉,如果這不是正確的方式來提出這個問題,但我很茫然,我不知道我還能去哪裏!

回答

1
//Why are we calling/redefining the xmlHttp variable? 

我們不是。

// Why define it as createXmlHttpRequestObject() in the first place? 

我們沒有。

這些是兩個不同的變量。一個是本地的,另一個不是。不幸的是,作者爲兩者選擇了相同的名字,因爲這使你感到困惑。

最終,他們最終擁有相同的資源,因爲本地函數從函數返回併成爲非本地值。

考慮以下類似的例子:

function foo() { 
    var x = 0; 
    return x; 
} 

var y = foo(); 

這就像,除了在你的代碼中,在函數定義之後調用來了,變數發生在具有相同的名稱。你的功能用它做了更有趣的事情。 :)


// What exactly is an XMLHttpRequest? 

這是你的瀏覽器,使AJAX發生內部一項技術的內部名稱。你應該簡單地谷歌它的所有多汁的細節。

是AJAX所需的xml對象嗎?我知道它的首字母縮寫詞的一部分,但我並不認爲服務器響應必須採用XML格式。

編號從歷史上看,XmlHttpRequest是爲XML設計的,因此它的名稱,但絕不是必需的。坦率地說,我現在說這很少見;人們喜歡JSON作爲交換格式......儘管我敢肯定,在一些組織中,你仍然無法擺脫90年代。


據我所知,這是所有AJAX代碼

其實看家,因爲你標記這個問題,你不應該做任何。 jQuery將在內部執行所有這種類型的gubbins,允許您堅持使用the handy $.get-family of functions。再次,所有的細節可以在網上找到。