2010-07-15 31 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