0

我正在尝试编写一个代码来测试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 中,发送标头时确实有停顿,但两部分内容之间没有停顿。
4

0 回答 0