进度条在任何网络浏览器上都不能正常工作

时间:2017-02-23 08:53:14

标签: javascript php jquery html ajax

我的一个开发项目中有一个进度条有几个问题。

我有一个JavaScript函数,可以同时启动多个调用PHP进程的Ajax调用。那些Ajax调用代表了一个更大的进程的百分比,因此,例如,如果我启动100个ajax调用,每个调用代表该进程的1%。

问题是当Ajax调用结束时,我不能强制通过JavaScript重绘HTTP DOM。

所以,进口就是这些:

<link rel="stylesheet" href="(...)/javascript/themes/base/ui.core.css">
<link rel="stylesheet" href="(...)/javascript/themes/base/ui.theme.css">
<script src="(...)/js/jquery-ui-1.7.2.custom.min.js" type="text/javascript"></script>

重要的代码是下一个:

创建进度条(在启动Ajax调用之前):

$("#progressbar").progressbar({max:100, value:0});
$("#progressbar").progressbar("enable");

每个Ajax调用都会在完成后修改变量。当我启动所有Ajax调用时,我使用JavaScript setTimeout创建一个Observer函数,该函数查看该变量并获得百分比:

setTimeout (function(){
    (...)
    var percentage = Math.round(((proccessedLines)/totalLines)*100);
    $("#progressbar").progressbar("value", percentage);
    (...)
}, 500);

最后,$(“#progressbar”)只是一个带有该名称的div HTML标记。

所以,问题是超时。它应该更新进度条值并更新DOM,它应该重新绘制,但它不能正常工作。

有什么想法吗?

我还要指出一件事:这个过程完美地运作到2天前;可能是浏览器中的一些新变化?

0 个答案:

没有答案