0

我想修改此代码,以便该值是一个变量,以便进度条实时刷新(或可能的最小时间米 - 毫秒)

我将“播种”当前时间以推动更新

<script type="text/javascript">
$(function() 
{             
    $("#container").progressbar({ value: 0 });
});
</script>


Fosco的编辑:(目前不工作)

    <script type="text/javascript">
    updateProgress(0);
    function updateProgress(newvalue) 
    {
        $("#container").progressbar({ 'value': newvalue });
        newvalue = newvalue + 1
        if (newvalue < 101) setTimeout('updateProgress(' + newvalue + ');',100);
    }
    </script>
4

3 回答 3

2

问题是,是什么推动了这次更新?这就是你需要知道的。什么价值会改变?

无论在哪里发生变化,都要更改进度条的值。

$("#container").progressbar({ value: 10 }); 

根据你说的时间播种?...

function updateProgress(newvalue) {
    $("#container").progressbar({ 'value': newvalue });
    newvalue = newvalue + 1
    if (newvalue < 101) setTimeout('updateProgress(' + newvalue + ');',100);
}

那么您启动它的初始功能将是:

updateProgress(0);

试一试。

于 2010-08-19T19:45:56.797 回答
1

第一点很容易

<script type="text/javascript">
$(function(value) 
{             
    $("#container").progressbar({ value: value });
});
</script>

接下来就不是那么容易了。进度条的目的是显示进度,那么它显示的进度是什么?您应该尽可能频繁地从正在执行它所反映的任何操作的代码中调用此函数。

如果您只想循环代码,则设置超时以在 1 ms 后调用该函数,然后重复。

值得一提的是,大多数浏览器的实际最小时间分辨率不是 1 毫秒,而是要少一些。

于 2010-08-19T19:47:35.457 回答
1

通过“实时”,我假设您的意思是您希望在完成一些步骤后对其进行更新。如果您希望根据时间的推移更新进度条,我建议您只使用某种动画图形。否则,您可能会在功能实际完成之前到达进度条的末尾,这会让您的用户感到困惑。

我在一个应用程序中使用了进度条,我需要执行三个任务来完成一个动作。每个任务都使用自己的 ajax 调用提交,并且每个任务都在其成功处理程序中包含以下内容:

$('.progress').progressbar('option', 'value', $('.progress').progressbar('option', 'value') + 33);

也就是说,每次完成一项任务时,我都会在进度条的当前值上加 33。

于 2010-08-19T20:04:17.890 回答