DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX詳解 >> XMLHTTP異步獲取返回值的代碼超時測試
XMLHTTP異步獲取返回值的代碼超時測試
編輯:AJAX詳解     
AJax|XML|異步

客戶端文件,請修改文件名為:test_2.htm

<Html>  
<body>  
XMLhttp異步的例子:  
URL:  <input  name=a  type=textbox value="test_s.ASP"  style="width:600px"  >  
<input  onclick=  "getXML()"  type=  "button"  value=  "得到源代碼">  
<input  name=geti  type=textbox value="10000">  
<input  onclick=  "if(xh  &&  xh.responseText)  {alert(xh.responseText);oDiv.innerHtml=xh.responseText}  "  type=  "button"  value=  "顯示源代碼  "  >  
<div  id=m style="display:none"></div>


<script language=Javascript>  
var oDiv              
var xh                          
function  getXML()  
{  
    oDiv = document.all.m;
    oDiv.innerHtml = "正在裝載欄目數據,請稍侯.......  ";
    oDiv.style.display = "";  
    xh = new ActiveXObject("Microsoft.XMLHTTP")
    xh.onreadystatechange = getReady;  
    xh.open("POST",a.value + "?geti=" + geti.value,true);
    //alert("geti=" + geti.value);
    xh.send();  
}  
 
function  getReady()  
{
    if(xh.readyState==4)  
       {  
        if(xh.status==200)  
        {  
            oDiv.innerHtml = xh.responseText;
            oDiv.innerHTML = oDiv.innerHtml + "load over"
        }  
        else  
        {  
            oDiv.innerHtml  =    "抱歉,裝載數據失敗。原因:  "  +  xh.statusText  
            // 我測試了,一旦運行時間過長會出現:抱歉,裝載數據失敗。原因: Internal Server Error
            // 但是這個時間是多少呢?在哪裡設定呢?
        }
    } 
    else
    {
        oDiv.innerHtml = "已經有數據了,不過readyState檢測未通過<br>";
        switch (xh.readyState){
            case 0:
                oDiv.innerHTML = oDiv.innerHtml + "0 (未初始化) 對象已建立,但是尚未初始化(尚未調用open方法)";
                break;
            case 1:
                oDiv.innerHTML = oDiv.innerHtml + "1 (初始化) 對象已建立,尚未調用send方法"
                break;
            case 2:
                oDiv.innerHTML = oDiv.innerHtml + "2 (發送數據) send方法已調用,但是當前的狀態及http頭未知"
                break;
            case 3:
                oDiv.innerHTML = oDiv.innerHtml + "3 (數據傳送中) 已接收部分數據,因為響應及http頭不全,這時通過responseBody和responseText獲取部分數據會出現錯誤, "
                break;
            case 4:
                oDiv.innerHTML = oDiv.innerHtml + "4 (完成) 數據接收完畢,此時可以通過通過responseBody和responseText獲取完整的回應數據"
                break;
            default: 
                oDiv.innerHTML = oDiv.innerHtml + xh.readyState + "未知狀態"
                break;
        }
        oDiv.innerHTML =  oDiv.innerHtml + "。請等待"
    }
}
</script>

</body></Html>

服務器端文件,請修改文件名為:test_s.ASP

<%
dim i
dim r
dim t
dim lngGetI

lngGetI=request.querystring("geti")

on error resume next
lngGetI=clng(lngGetI)
if err<>0 then
    response.write "GetError:  not isnumber()"
    response.end()
end if

if lngGetI<0 or lngGetI>500000 then
    lngGetI=10000
end if

response.write "Run Repeat At:" & lngGetI & "<br>" 


t=timer
for i=1 to lngGetI
    r = r & i
    if i mod 20 = 0 then
        r= r & "a<br>"
    end if
next

response.write "run timer:" & cdbl(timer()-t)  & "<br>"
response.write r


%>

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved