gpt4 book ai didi

php - jQuery 支持传输编码 :chunked

转载 作者:可可西里 更新时间:2023-11-01 13:12:27 29 4
gpt4 key购买 nike

我是一名网络开发人员。在我的脚本中使用 header() 来设置“Transfer-Encoding:chunked”。和 flush() 到网页。它将在网页中分时打印。它工作正常。但是,当我使用 jQuery.ajax() 来请求 this.it 时,它总是一起输出(分块无用)。

如何解决这个问题?在 jQuery ajax 中使用分块编码?

最佳答案

您不能使用 jquery.ajax 连续读取分块的 http 响应。 jquery ajax 只会在连接终止时调用成功回调函数。你应该使用 this jquery 插件。

如果您使用的是 php,那么您可以使用此代码:

 <html>
<head>
<script src="jquery-1.4.4.js"></script>
<script src="jquery.stream-1.2.js"></script>
<script>

var println = function(string){
$("#console").append(string+"<br />");
}

$(document).ready(function(){



$.stream("stream.php",{
open:function(){
println("opened");
},
message:function(event){
println(event.data);
},
error:function(){
println("error");
},
close:function(){
println("closed");
}
});



});
</script>
</head>
<body>


<div id="console"></div>

</body>
</html>

在服务器端:

流.php

<?php


header('Content-Encoding', 'chunked');
header('Transfer-Encoding', 'chunked');
header('Content-Type', 'text/html');
header('Connection', 'keep-alive');

ob_flush();
flush();

echo("23123454645645646;");


$p = "";
for ($i=0; $i < 1024; $i++) {
$p .= " ";
};
echo($p.";");



for ($i = 0; $i < 10000; $i++) {
echo('6;string;');
ob_flush();
flush();
sleep(2);
}




?>

关于php - jQuery 支持传输编码 :chunked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10753725/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com