1

xsltを使用して変換している巨大なxmlファイルがあります。また、ページの読み込み時にjqueryを使用して多くのことを行っています。基本的に、多くの div を非表示にして、onclick の後にそれらを開きます。このため、ページの読み込みに 2 ~ 3 秒かかるようになりました。

ロード中にプログレスバーを表示して、ユーザーが白い画面を見つめるのではなく、ページがロードされていることを認識できるようにするとよいと思いました。jquery UI プログレスバーを調べると、バーの長さを決定する値属性があることがわかりました。

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

すでに言ったように、私のjsファイルには$(document).ready(function() { ...... });ページ全体をロードする1つの巨大なものがあります。プログレスバーの値属性に渡すことができるように、ページが読み込まれた量の値を取得するにはどうすればよいですか?

4

1 に答える 1

3

$(document).readyDOM が読み込まれるまで起動しないため、これはあまり役に立ちません。

ドキュメントが (JavaScript で) どのくらいの大きさになるかわからない場合、これを正確に行うのは困難です。

解決策の 1 つは、期待される要素の数を示す情報をファイルの先頭に含めることです。次に、DOM 内の要素を数えて、完成度を把握できます。

タイマーまたは間隔を使用して、ドキュメントの準備が整う前に検索を開始し、100% になるまで続けます。

if (document.getElementById('expected')) {
    var expected = parseInt(document.getElementById('expected').value, 10);
    var loaded = document.getElementsByTagName('div');
    var progress = (loaded / expected) * 100;
}

expectedページの上部に近い要素が必要になります。

<input type="hidden" id="expected" value="50" />
于 2012-11-01T17:27:44.520 に答える