我正在使用wordpress插件,该插件使用ajax调用在当前页面上显示结果。调用一个php文件,该文件使用ob_end_flush()和ob_start()在处理时输出每一行。
我的问题是,当我使用ajax调用包含此文件时,似乎jquery首先等待,直到整个页面在显示之前完全处理。我希望文件立即显示,然后逐行输出,就像它想象的那样。
jquery文件
jQuery("#analyze").click(function(){
jurl=jQuery("#url").val();
jQuery.ajax({
beforeSend: function() {
jQuery('#loading_bar').show();
jQuery('#results').hide();
},
type: "POST",
url: "/wp-content/plugins/myplugin/results.php",
data: {
url:jurl
}
})
.done(function(ajaxresult) {
jQuery('#loading_bar').hide();
jQuery('#results').show();
jQuery("#results").html(ajaxresult);
})
.fail(function() {
alert( "Error" );
});
});
results.php
<?PHP
if(!empty($_POST['url'])) {
$url = $_POST['url'];
$url_info = get_url_metrics($url);
foreach($url_info as $value) {
ob_end_flush();
echo "Info: :";
echo $value;
echo "<br />";
ob_start();
}
echo "Done";
}
?>