jQuery ajax调用 - 不要等到加载请求的页面,立即显示它

时间:2014-05-05 20:20:34

标签: jquery ajax

我正在使用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";
}
?>

0 个答案:

没有答案