AJAX以渐进的方式读取数据,而不仅仅是在完成时

我想为我的ajax调用创建一个进度条。 为此,我可以使我的服务器端脚本返回其进度状态。 所以我需要javascript来阅读这个进度级别并显示它。

是可能还是我走错了路?

你可以尝试这样的东西(一些假代码,假设jQuery,因为你已经标记了这个问题):

var poll; $.ajax({ url: 'your_ajax_script', beforeSend: function(){ // set up out-of-band status polling poll = setInterval( function(){ $.get('your_script_that_returns_status', function(data){ update_progressbar(data); }); }, 1000 ); // update every second? }, success: function(data) { clearInterval( poll ); // stop polling finalize_or_hide_progressbar(); // clean up do_something_with( data ); // your "done" logic } }); 

按间隔轮询,在最后成功调用时返回有效负载,或运行两个AJAX调用 – 第一个检索实际数据,第二个轮询更新百分比。