zoukankan      html  css  js  c++  java
  • xmlhttprequest获取TransferEncoding: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且返回数据不为空的时候就可以获取到分时第一步输出内容了。

  • 相关阅读:
    Nginx开启Gzip压缩
    VMware克隆虚拟机,克隆机网卡启动不了解决方案
    Linux 几个简单的操作命令
    1. Java环境搭建及demo
    美柚记录
    action找不到
    < >
    document 写法
    develop process
    git stash
  • 原文地址:https://www.cnblogs.com/zaric/p/2529883.html
Copyright © 2011-2022 走看看