我在開發中遇到了一些進度條問題。進度條不工作,因爲它應該在任何網絡瀏覽器上
我有一個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,它看起來在該變量並獲得百分比觀察員功能:
setTimeout (function(){
(...)
var percentage = Math.round(((proccessedLines)/totalLines)*100);
$("#progressbar").progressbar("value", percentage);
(...)
}, 500);
最後,那個$(「#進度」)只是一個div HTML標籤用那個名字。
所以,問題在於超時。它應該更新進度條值並更新DOM,它應該被重畫,但它不應該像它應該那樣工作。
任何想法?我不得不指出一件事:這個過程在2天前完美地工作;可能是瀏覽器中的一些新變化?
@nicolastorre您好,我試過的setInterval方法,並doesn't工作。我試過你的代碼片段,但沒有奏效。 我認爲這只是一個刷新錯誤,但我必須避免它。 –
確定如此有一個偉大的調試(請問如果你需要幫助) – nicolastorre
嗨@nicolastorre,仍然沒有工作,你有任何其他的想法? –