xmlhttprequest获取Transfer-Encoding:chunked分时编码输出

问题:

<?php

$output = '第一部分<br>';

while( strlen($output) < 1024) { //chrome下小于1KB会缓存,无分时效果。

  $output .= " ";

}

echo $output;

ob_flush();

flush();

sleep(3);

echo "第二部分";

这段代码浏览器正常:先输出“第一部分”,等待3秒,输出追加“第二部分”。分时输出。Ajax下则等待所有输出准备完毕才一同输出。请问jQuery.ajax不支持chunked。还是其他什么原因?


直接从jQuery.ajax回调success获取的是响应为200时的完成返回。

而我要捕获的不是这些东西。看看xmlhttprequest种状态码,参考:w3schoole XMLHttpRequest  。

xmlhttp=new XMLHttpRequest();

xmlhttp.onreadystatechange=function()

 {

 	 if (xmlhttp.readyState==4 && xmlhttp.status==200 && isDone == false)

    	{

    		submitCallBack(xmlhttp.responseText);

		isDone = true;

   	}

	 else if(xmlhttp.readyState == 3 && isDone == false){

		 if(xmlhttp.responseText.length > 0)

		{

			submitCallBack(xmlhttp.responseText);

			isDone = true;

		}

	}

 }

  

  这样在readyState为3且返回数据不为空的时候就可以获取到分时第一步输出内容了。

你可能感兴趣的:(XMLhttpREquest)