if(ajax.checkReadyState('body', 'loading...', 'loading...', 'loading...') == "OK")
{
document.getElementById('body').innerHTML = ajax.request.responseText;
}
它最簡單不過了!一旦載入響應信息完成,我們就調用AJAX對象,用responseText來檢索它的值,并把它添加到頁面上。
處理JSON響應信息比處理純文本或(X)HTML需要多一點技巧。下面是我們分析一個JSON文件的示例:
{ 'header' : 'How to Handle the Ajax Response',
'description' : 'An in-depth explanation of how to handle the Ajax response.',
'sourceUrl' : 'http://www.krishadlock.com/clients/informit/AjaxResponse/AjaxResponse.zip'}
數據被冒號(:)分成了兩個部分:標簽名稱和值。附加的數據被逗號(,)分成新的名稱/值對,F在我們知道了JSON的樣子了,下面是我們分析它的方法:
if(ajax.checkReadyState('body', 'loading...', 'loading...', 'loading...') == "OK")
{
eval("var response = ("+ajax.request.responseText+")");
document.getElementById('body').innerHTML = "<b>" + response.header + "</b><br/>"
+ response.description + "<br/><br/>"
+ "<a href='" + response.sourceUrl + "'>Download the source files</a>";
}
JSON數據首先由JavaScript來分析(使用簡單的eval()過程)。一旦數據被分析好了并建立了響應信息對象,我們就可以簡單地通過名字來獲取它們的響應信息值。
responseText不僅可以給頁面添加內容,它在調試AJAX請求的時候也有用處。例如,你可能還沒有準備好分析數據,因為你還不知道所有的標簽是什么樣的,是XML格式的還是JSON文件。這就要求有一種用于檢測被分析數據的途徑。一旦你知道了所有的標簽名稱,所需要做的事情就只是編寫代碼了。
responseXML的使用也相當簡單。但是與JSON格式類似,XML要求進行數據分析。我們需要執行的第一項事務是識別出XML響應信息中的根節點。
var response = ajax.request.responseXML.documentElement;
下一步,我們通過名稱獲取所有的元素并得到它們的值:
var header = response.getElementsByTagName('header')[0].firstChild.data;
var description = response.getElementsByTagName('description')[0].firstChild.data;
var sourceUrl = response.getElementsByTagName('sourceUrl')[0].firstChild.data;
最后,我們把響應信息顯示在相應的div標記中:
document.getElementById('body').innerHTML = "<b>" + header + "</b><br/>"
+ description + "<br/><br/>"
+ "<a href='" + sourceUrl + "'>Download the source files</a>";
用JavaScript的時候,JSON比XML要快一些,這是因為JSON所需要的分析代碼比XML少很多,直接導致在分析大量數據的時候,JSON的速度較快。JSON不如XML的地方在于XML受到的支持更大、服務器端開發選項更多。你可以根據環境和請求的用途來做出選擇。
AJAX響應信息是AJAX通訊中的一個重要的部分。你需要處理很多方面的信息,包括就緒狀態、錯誤處理和加載狀態,并最終顯示出來。有了這些信息之后,你就可以把注意力集中在響應信息上,為用戶提供更多的信息。
文章來源于領測軟件測試網 http://www.kjueaiud.com/