記憶盒子

把記憶裝進灰色的盒子,封裝起來,那年那月,重新拾起。

首頁搜索目錄
search
當前主題: 軟件編程

為什么xmlhttp.readyState一直是1?

作者:Kaka    時間:2010-1-11 17:28:1    瀏覽:    評論:0

      今天在測試程序的時候,發(fā)現(xiàn)xmlhttp.readyState一直為1,這種情況很奇怪,我一直沒遇到過。開始我以為是用ActiveXObject('Microsoft.XMLHTTP') 創(chuàng)建的xmlhttp對象不對,于是改變用其他的協(xié)議來創(chuàng)建對象,MSXML2.XMLHTTP、 MSXML3.XMLHTTP等,但無一有效。

      xmlhttp.readyState=1是什么意思呢?為什么會出現(xiàn)這樣的問題?怎么解決?帶著一連串的疑問,開始查閱有關資料。

      如下是xmlhttp.readyState的詳細解釋:

      xmlhttp.readyState=0 
      (未初始化)  對象已建立,但是尚未初始化(尚未調用open方法)
      xmlhttp.readyState=1  
      (初始化)  對象已建立,尚未調用send方法
      xmlhttp.readyState=2 
      (發(fā)送數(shù)據(jù))  send方法已調用,但是當前的狀態(tài)及http頭未知
      xmlhttp.readyState=3  
      (數(shù)據(jù)傳送中)  已接收部分數(shù)據(jù),因為響應及http頭不全,這時通過responseBody和responseText獲取部分數(shù)據(jù)會出現(xiàn)錯誤  
      xmlhttp.readyState=4   
      (完成)  數(shù)據(jù)接收完畢,此時可以通過通過responseBody和responseText獲取完整的回應數(shù)據(jù)

      由此可見,是調用send方法不成功,已經(jīng)調用了open方法。看來,問題出現(xiàn)在open這里了。open的寫法是xmlhttp.open("GET",url,true),并沒有發(fā)現(xiàn)有什么不對!見鬼了!

      我嘗試把true改為false。注,true為異步,即不等數(shù)據(jù)全部接收完就進行下一步;false為同步,等接收完數(shù)據(jù)才進行下一步。有關同步與異步的解釋,請看軟件編程中同步與異步的區(qū)別。令我意想不到的是,這樣竟然可以調用send方法了,xmlhttp.readyState不一直為1了,檢測到有2、3、4的狀態(tài)了。

      出現(xiàn)這種情況,我覺得是url的問題,xmlhttp調用open方法時,遇到很難請求的url,導致xmlhttp.readyState一直為1,這與網(wǎng)絡有很大關系。遇到這種情況,可以改變下open的url來檢測,或者改變下測試環(huán)境,把程序放到其他的機器來測試,看是否環(huán)境導致的問題。

x

標簽: xml  

※ 網(wǎng)站速度慢?試試網(wǎng)站自動優(yōu)化工具 ※

上一篇: W3C是什么?什么是W3C標準?
下一篇: 檢測網(wǎng)頁的幾種方式

發(fā)表評論:

◎歡迎參與討論,請在這里發(fā)表您的看法、交流您的觀點。

訂閱博客                   QQ交流群(312716741)

  • 通過Google訂閱本站 通過鮮果訂閱本站 通過抓蝦訂閱本站
  • 通過QQ郵箱訂閱本站 通過Yahoo訂閱本站 通過有道訂閱本站

Search

最新評論及回復

最近留言

網(wǎng)站分類

Powered By Z-Blog 1.8 Walle Build 91204 Designed by Han'space

Copyright @2009-2024 All Rights Reserved. 粵ICP備14028160號-1

Powered By Z-Blog 1.8 Walle Build 91204
Copyright @2009-2024 All Rights Reserved.