2010-07-15 32 views
3

我正在玩一些cometmxhr技術。事實證明,Chrome (5)實際上確實觸發了readystate 3,但responseText總是那裏。Ajax readystate 3(Chrome/IE)

直到今天我雖然只有InternetExplorers(< 8)會顯示該行爲。

我錯了嗎?

有人可以確認Chrome不完全支持ajax readystate 3

回答

4

webkits開發者論壇上做了大量的研究和閱讀之後,我終於可以知道發生了什麼以及如何防止在chrome/webkit/safari

這都是關於連接類型。爲了使chromeready state 3中「正確地」工作(responseText不爲空),我們需要一種不受嗅探的內容類型。例如一個Content-type:text/xml工作正常。

webkit上的另一件重要的事情是,它不會呈現推送的數據,直到有足夠的字節傳輸。 treshhold約爲256字節的「官方」。所以你至少必須把它作爲填充。

無論如何,在我的測試中,我認爲在Chrome(5)第一次觸發state3 ajax事件之前,您需要發送更多信息。大約1kb。

+0

天才!我花了一段時間試圖弄清楚這一點。我不知道爲什麼chrome不能在text/html上工作,但是它可以很好地處理文本/純文本。去搞清楚。 – Jeff 2011-06-12 09:19:20