-1

我想了解有关进度条的更多信息。我知道他们使用要上传的文件,因为您知道它的大小。但是如果我没有文件但有一些代码可以用 jquery/ajax 执行,我想用进度条显示进度怎么办。可能吗?为了给你更多细节,我的代码在几个网站上获取许多数据,转换它们,最后将它们保存到数据库中。

编辑:这是我的 ajax 调用的示例:

function submit_form(form, link, file, button)
{
    var form_data = $(form).serialize();
    $.ajax
    ({
        url: link,
        type: 'POST',
        dataType: 'json',
        data: form_data,
        success: function(result)
        {
             handle_result(form, result, link, button);
        }
    });
}
4

2 回答 2

0

jQueryUI Progressbar 文档说您可以自己设置进度条的值:

$( ".selector" ).progressbar( "value", 50 );

因此,解决问题的一种方法是:如果您知道正在执行的操作(获取数据、转换、写入数据库)的数量,那么您可以在其中一个操作完成时增加 Progressbar 的值:

var completed = 0;
var total = 10;

doSomething().done(function(result) {
  completed++;
  $("#progress-bar").progressbar("value", 100 * (completed / total));
});
于 2013-09-13T14:13:39.037 回答
0

阅读有关$.ajax() 函数和 XMLHttpRequest 对象的xhr选项的更多信息。您需要关注的是向其添加“进度”事件侦听器。您也可以尝试一些现成的解决方案,例如Reload Progress Bar plugin for jquery,它扩展了 $.ajax() 函数,以便您可以在任何 Ajax 请求中使用进度条。

于 2013-09-17T12:47:52.510 回答