2009-01-02 46 views
0

我正在使用AJAX向CGI程序發出請求。響應發送給我的內容長度。我的目的是動態展示響應進度。爲此,我需要在XHR對象的onreadystate值上啓動一個函數爲3.但該請求似乎並未獲取該狀態編號。相反,它直接從狀態1到狀態4. 我錯過了什麼?爲什麼我的Ajax請求直接從狀態1轉到4?

+0

一些示例代碼可能會幫助人們找出您的問題。 :) – 2009-01-02 16:50:32

回答

0

響應可能會如此之快,以至於在狀態3時您不會注意到它。特別是如果您在本地主機上運行它,則響應可能會非常快地傳輸。當它進入階段3時,您可以嘗試設置警報,以測試它是否真的到達那裏。另外,我相信互聯網瀏覽器說,在第3階段訪問響應是一個錯誤,因此可能存在兼容性問題。

0

如果你在本地主機上運行,​​則可能是瀏覽器從來沒有得到一個機會,它發送請求,它得到響應的時間之間的時間運行...

  1. 瀏覽器中打開連接,把readyState設置爲1
  2. 瀏覽器發送分組到服務器進程
  3. 服務器進程接收數據包時,從調度器
  4. 服務器返回數據獲得優先權到瀏覽器,並且CPU的產率控制。瀏覽器繼續執行。
  5. 瀏覽器看到的所有數據已被接收,把readyState設置爲4

長話短說:不要進入「接收」狀態計數。