Hanlet が述べたように、これを使用できる一般的なシナリオがいくつかあります。
- あなたはウェブサイトを持っていて、あなたのページにはたくさんの画像があります。
- Web アプリがあり、ページに多くのプロセスまたは ajax リクエストがあります。また
- 両方。
第一に、私は画像プリローダーを使用している人々を見てきたが、2 つの大きな利点がある。第一に、ページが読み込まれると、すべての画像がただそこにあるということであり、第二に、画像は通常、ページの読み込みのより重い部分であるため、これらの基本的なパーセンテージ計算は、ほぼそれを示しています。単純な JavaScript 画像プリローダー アルゴリズムはimg
、ドキュメント上のすべてのタグをループしてImage
オブジェクトを作成し、そのsrc
属性をページに挿入する前に設定します。
2 番については、オブザーバーのようなProgress オブジェクトを次のように作成します。
var Progress = {
processes:{},
// Adds a process to keep track on
addProcess:function(name){
this.processes[name] = false; // false for non-completed
},
// Sets a process as completed, calls redrawProgress
setCompleted:function(name){
this.processes[name] = true;
this.redrawProgress();
},
redrawProgress:function(){ /* Updates the progress bar */ }
};
そして、各プロセス内で、進行状況バーに登録し、終了時にProgress.addProcess('myprocessname');
呼び出す必要があります。Progress.setCompleted('myprocessname');
3 番については、すべてのページのリクエスト (画像、Ajax データ リクエスト、外部 JavaScript 呼び出し、およびその他のプロセスを含む) を知る何らかの方法を試み、それを 2 番のオブジェクト ソリューションと混ぜ合わせProgress
ますが、これは試したことはありません。 .