1
  • ドキュメントの準備ができたらコードを起動することは、jQuery の柱です。
  • ただし、ready イベント内で長い操作が実行される場合があります。
    • たとえば、複数のカルーセルインスタンスを長い順序付けられていないリストにアタッチするには、時間がかかります。

質問:

準備完了イベント中に認識される応答性を高めるにはどうすればよいですか?

例えば:

  • 「知っていましたか?」でシックボックスインスタンスをポップできますか? 基礎となるDOM操作を覆い隠すセクション?
    • ...そして、準備完了イベントが完了したときに、そのシックボックス インスタンスを自動的に閉じますか?
4

2 に答える 2

1

ユーザーに提供するすべてのフィードバックは、応答性の向上につながります。ローディング画像は古典的であり、よく知られています (つまり、ユーザーマインドモデルと一致しています)。シックボックスはそれ自体がかなり厄介かもしれませんが、ゲーム業界のほとんどの人がすでに発見しているように、読み込みメッセージと組み合わせると、ユーザーの教育とフィードバックの提供が同時に行われるため、はるかに優れた結果が得られます。

[編集]

このようなもの:

$(function() {
    tb_show(caption, url, imageGroup); // show thickbox

    /* lengthy operation here */

    tb_remove(); // remove thickbox
});

[/編集]

于 2009-08-26T13:14:56.173 に答える
0

setTimeout進行状況インジケーターに加えて、非常に短いタイムアウトでJavascript関数を使用して複数の操作を並列化できます。これにより、ブラウザで複数のスレッドを効果的に利用し、各操作を非同期で実行できます。

この手法は、操作が順序やタイミングを相互に依存せず、一度に多くのタイムアウトを作成しない場合にのみ使用してください。そうしないと、メモリ使用量の増加によりブラウザがハングする可能性があります。

また、ブラウザには最小タイムアウトがあり、通常は約10〜20ミリ秒ですが、ブラウザによって異なります。目立たないように十分に短くする必要があります。タイムアウトを0に設定すると、デフォルトでブラウザの最小値になります。

これは、カルーセル設定の簡単な例で、リストを2つのグループに分割します。

setTimeout(function () {
    // code for attaching first carousel group
    // ...
}, 0);
setTimeout(function () {
    // code for attaching second carousel group
    // ...
}, 0);
于 2009-08-28T07:45:02.550 に答える