我正在尝试编写一个代码来测试XMLHttpRequest
检查不同类型的 readyState 值。根据MDN,有五种可能的连续状态。我构建了一些 PHP 代码,强制在每个状态之间暂停:
<?php
// Build the json
$msg = json_encode(array(
'status' => 0,
'msg' => 'Lorem ipsum dillum sit amet')
);
// Divide the message in two parts
$msgLen = strlen($msg);
$h1 = $msgLen / 2;
$h2 = $msgLen - $h1;
// Wait, then send the headers
sleep(1);
header('Content-type: application/json');
flush();
// Wait, the send the first part
sleep(1);
echo substr($msg, 0, $h1);
flush();
// Wait, the send the second part
sleep(1);
echo substr($msg, $h2);
问题是它似乎不起作用。请求立即从 1 - OPENED 到 4 - DONE,而不是在每个状态之间暂停。
此外,还发生了两件奇怪的事情:
- 在 Firefox 和 IE 中,readyState 1 - OPENED 被触发两次。
- 在 IE10 中,发送标头时确实有停顿,但两部分内容之间没有停顿。