を達成するどのような方法があるかどうかという、私を見つけたとして再描画されていない理由を概念化の問題を抱えていると思います私の配列を処理するために使用する 'For'ループは、domをフリーズし、再レンダリングを停止します。これを修正するために、私は 'setTimeout'コールを使用しました。これはハックのようだが、うまくいけば、この問題に反対する誰かを助けるだろう。より多くの答えを感謝します。私はこの道を私に任せてくれたエリック・グアンのおかげです。私はここで別のポストに答えを見つけた - >How to stop intense Javascript loop from freezing the browser
var self = this;
var animals = ['dog', 'cat','lion','tiger','bear'];
var processing = function() {
var animal = animals.shift();
console.log(animal);
if (animals.length > 0) {
console.log(animals.length);
var timer = setTimeout(processing, 1000);
self.$store.commit('updateStatus', {progress : animals.length*20, msg: 'Progress Bar Test', status: 'processing', display: true});
} else {
console.log('clearing timeout');
self.$store.commit('updateStatus', {progress : 100, msg: 'Progress Bar Test', status: 'processing', display: false});
clearTimeout(timer);
}
}
processing();
あなたの変異が同期しているので、あなたの進行状況を更新しているにもかかわらず、UIは、あなたの突然変異が完了するまで更新できませんので、ほとんどの場合。 UIを更新できるように更新を「チャンク」する必要がありますが、これは通常X回の反復後にsetTimeoutを0として行われます。また、更新が視覚的に見るには速すぎることもありますか? –
これは主に私が見つけたものにぴったりです。私はsetTimeoutを使って、配列要素を処理するときにDOMをフリーズしませんでした。私は以下の答えを追加します –